diff --git a/source/FluxBase-Core-Tests/FBDeferredChoiceTest.class.st b/source/FluxBase-Core-Tests/FBDeferredChoiceTest.class.st index afe2327..f2e4f1a 100644 --- a/source/FluxBase-Core-Tests/FBDeferredChoiceTest.class.st +++ b/source/FluxBase-Core-Tests/FBDeferredChoiceTest.class.st @@ -219,3 +219,12 @@ FBDeferredChoiceTest >> testABranchThatCannotWaitIsRejected [ self assert: seen isEmpty. self assert: ((instance events detect: [ :each | each isKindOf: FBNodeActivationErrored ]) message includesSubstring: 'waits') ] + +{ #category : 'tests' } +FBDeferredChoiceTest >> testTheChoiceStaysOutOfTheExposedNodeSetForNow [ + "ApptiveGrid offers every non-abstract node class to its client as a type to pick; + the client knows no deferred choice yet, so the class reads abstract the way + FBRemoteFlowTask and FBTerminateEvent do - and stays instantiable" + self assert: FBDeferredChoice isAbstract. + self assert: (FBDeferredChoice named: 'choice') isDeferredChoice +] diff --git a/source/FluxBase-Core/FBDeferredChoice.class.st b/source/FluxBase-Core/FBDeferredChoice.class.st index e9883b6..47aa61d 100644 --- a/source/FluxBase-Core/FBDeferredChoice.class.st +++ b/source/FluxBase-Core/FBDeferredChoice.class.st @@ -18,6 +18,12 @@ would run at once cannot take part in a choice, since steps run to rest before a from outside arrives, and my behavior refuses such a model. I open a pass like every split (FBSplitExecution), which is what remembers whether I was decided and where my branches began (#origin). + +Abstract in the sense of the exposed node set only, like FBRemoteFlowTask and +FBTerminateEvent: ApptiveGrid lists every non-abstract node class to its client as a type +a user can pick, and the client knows nothing of a choice yet. Instantiable all the same; +the tests build me directly. An ApptiveBase subclass lifts this once the client can show +and configure one. " Class { #name : 'FBDeferredChoice', @@ -27,6 +33,12 @@ Class { #tag : 'Model' } +{ #category : 'testing' } +FBDeferredChoice class >> isAbstract [ + "see the class comment: out of the exposed node set until the client knows the node" + ^ true +] + { #category : 'instance creation' } FBDeferredChoice class >> typeName [ ^ #deferredChoice