From 010d976dc7aa8f4c0793bc959653200d1febb795 Mon Sep 17 00:00:00 2001 From: Bastian Waidelich Date: Sun, 19 May 2024 18:25:54 +0200 Subject: [PATCH] TASK: Format behat tests --- .../HierarchyIntegrityIsProvided.feature | 6 +- ...odesHaveAtMostOneParentPerSubgraph.feature | 6 +- .../ReferenceIntegrityIsProvided.feature | 6 +- .../SiblingsAreDistinctlySorted.feature | 6 +- .../SubtreeTagsAreInherited.feature | 6 +- ...ggregateWithNode_WithoutDimensions.feature | 14 +- ...deAggregateWithNode_WithDimensions.feature | 8 +- ...AggregateWithNode_ConstraintChecks.feature | 10 +- ...de_ConstraintChecks_WithDimensions.feature | 10 +- ...ggregateWithNode_WithoutDimensions.feature | 78 +++--- ...ComplexDefaultAndInitialProperties.feature | 14 +- ...eWithNode_NodeTypeConstraintChecks.feature | 58 ++--- ...02-CreateNodeSpecializationVariant.feature | 8 +- ...SetNodeProperties_ConstraintChecks.feature | 46 ++-- ...3-SetNodeProperties_PropertyScopes.feature | 32 +-- ...SetNodeReferences_ConstraintChecks.feature | 134 +++++----- ...etNodeReferences_WithoutDimensions.feature | 24 +- ...3-SetNodeReferences_WithDimensions.feature | 26 +- ...4-SetNodeReferences_PropertyScopes.feature | 48 ++-- ...odeVariation_After_NodeReferencing.feature | 80 +++--- ...ableNodeAggregate_ConstraintChecks.feature | 72 ++--- ...ableNodeAggregate_ConstraintChecks.feature | 30 +-- ...bleNodeAggregate_WithoutDimensions.feature | 80 +++--- ...EnableNodeAggregate_WithDimensions.feature | 2 +- ...DisabledAncestor_WithoutDimensions.feature | 24 +- ...ithDisabledAncestor_WithDimensions.feature | 48 ++-- ...09-CreateNodeVariantOfDisabledNode.feature | 108 ++++---- ...moveNodeAggregate_ConstraintChecks.feature | 2 +- .../05-CreateNodeAfterDeletion.feature | 4 +- .../01-MoveNodes_ConstraintChecks.feature | 2 +- ...deAggregate_NoNewParent_Dimensions.feature | 148 +++++------ ...NodeAggregate_NewParent_Dimensions.feature | 82 +++--- .../05-MoveNodeAggregate_SubtreeTags.feature | 60 ++--- .../02-ChangeNodeAggregateName.feature | 18 +- ...ForkContentStream_ConstraintChecks.feature | 6 +- ...WithDisabledNodesWithoutDimensions.feature | 6 +- ...ForkContentStreamWithoutDimensions.feature | 6 +- .../NodeReferencesOnForkContentStream.feature | 32 +-- .../AddDimensionShineThrough.feature | 6 +- .../AddNewProperty_NoDimensions.feature | 6 +- .../ChangePropertyValue_Dimensions.feature | 6 +- .../ChangePropertyValue_NoDimensions.feature | 6 +- .../Filter_NodeName_NoDimensions.feature | 6 +- ...lter_PropertyNotEmpty_NoDimensions.feature | 6 +- .../Filter_PropertyValue_NoDimensions.feature | 6 +- .../NodeTypeAdjustment_Dimensions.feature | 26 +- .../NodeTypeAdjustment_NoDimensions.feature | 6 +- .../Migration/RemoveNodes_Dimensions.feature | 6 +- .../RemoveProperty_NoDimensions.feature | 6 +- .../RenameNodeAggregate_Dimensions.feature | 38 +-- .../RenameProperty_NoDimensions.feature | 28 +- .../StripTagsOnProperty_NoDimensions.feature | 28 +- .../NodeCopying/CopyNode_NoDimensions.feature | 82 +++--- .../NodePropertyConversion.feature | 36 +-- .../RemoveNodeAggregateAfterDisabling.feature | 56 ++-- .../RemoveNodeAggregateWithDimensions.feature | 52 ++-- .../NodeTraversal/AncestorNodes.feature | 4 +- .../NodeTraversal/ClosestNode.feature | 4 +- .../Features/NodeTraversal/CountNodes.feature | 2 +- .../NodeTraversal/FindNodeById.feature | 6 +- .../NodeTraversal/FindSubtree.feature | 2 +- .../Features/NodeTraversal/Timestamps.feature | 2 +- .../AllNodesCoverTheirOrigin.feature | 56 ++-- .../IntactContentGraph.feature | 88 +++---- ...ateIdentifiersAreUniquePerSubgraph.feature | 56 ++-- ...istentlyClassifiedPerContentStream.feature | 56 ++-- ...eConsistentlyTypedPerContentStream.feature | 56 ++-- .../ReferenceIntegrityIsProvided.feature | 76 +++--- .../DimensionMismatch.feature | 30 +-- .../DisallowedChildNode.feature | 118 ++++----- .../StructureAdjustment/Properties.feature | 8 +- .../TetheredNodesReordering.feature | 28 +- .../UnknownNodeType.feature | 40 +-- .../TagSubtree_WithoutDimensions.feature | 6 +- .../01-ConstraintChecks.feature | 12 +- .../02-BasicFeatures.feature | 22 +- .../02-RebasingWithAutoCreatedNodes.feature | 38 +-- .../03-RebasingWithConflictingChanges.feature | 74 +++--- .../02-PublishWorkspace.feature | 4 +- .../01-ConstraintChecks.feature | 12 +- .../03-MoreBasicFeatures.feature | 20 +- .../04-AllFeaturePublication.feature | 246 +++++++++--------- ...PublishMovedNodesWithoutDimensions.feature | 144 +++++----- .../02-DiscardWorkspace.feature | 56 ++-- ...NodeOperationsOnMultipleWorkspaces.feature | 84 +++--- .../Workspaces/PruneContentStreams.feature | 62 ++--- ...ingleNodeOperationsOnLiveWorkspace.feature | 48 ++-- .../Behavior/Features/Import/Import.feature | 2 +- .../Tests/Behavior/Features/Basic.feature | 10 +- .../Tests/Behavior/Features/Errors.feature | 50 ++-- .../Tests/Behavior/Features/Hidden.feature | 12 +- ...iddenWithoutTimeableNodeVisibility.feature | 12 +- .../NodesInOtherWorkspace.feature | 14 +- .../Features/FrontendRouting/Basic.feature | 6 +- .../UriPathResolver.feature | 20 +- .../FrontendRouting/Dimensions.feature | 6 +- .../FrontendRouting/DisableNodes.feature | 10 +- .../Lowlevel_ProjectionTests.feature | 126 ++++----- .../FrontendRouting/MultiSiteLinking.feature | 8 +- .../FrontendRouting/Shortcuts.feature | 54 ++-- .../Features/Fusion/ContentCache.feature | 3 +- .../Features/Fusion/ContentCase.feature | 6 +- .../Features/Fusion/ConvertUris.feature | 7 +- .../Features/Fusion/FlowQuery.feature | 37 +-- .../Behavior/Features/Fusion/Menu.feature | 22 +- 105 files changed, 1812 insertions(+), 1809 deletions(-) diff --git a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/HierarchyIntegrityIsProvided.feature b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/HierarchyIntegrityIsProvided.feature index 61f5f04cc0f..e099c9775ce 100644 --- a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/HierarchyIntegrityIsProvided.feature +++ b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/HierarchyIntegrityIsProvided.feature @@ -21,9 +21,9 @@ Feature: Run integrity violation detection regarding hierarchy relations and nod | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: | Key | Value | | workspaceName | "live" | diff --git a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/NodesHaveAtMostOneParentPerSubgraph.feature b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/NodesHaveAtMostOneParentPerSubgraph.feature index c5829618048..608c14dcb41 100644 --- a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/NodesHaveAtMostOneParentPerSubgraph.feature +++ b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/NodesHaveAtMostOneParentPerSubgraph.feature @@ -21,9 +21,9 @@ Feature: Run integrity violation detection regarding parent relations | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: | Key | Value | | workspaceName | "live" | diff --git a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/ReferenceIntegrityIsProvided.feature b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/ReferenceIntegrityIsProvided.feature index 10e10455121..28e18f5fba4 100644 --- a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/ReferenceIntegrityIsProvided.feature +++ b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/ReferenceIntegrityIsProvided.feature @@ -24,9 +24,9 @@ Feature: Run integrity violation detection regarding reference relations | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: | Key | Value | | workspaceName | "live" | diff --git a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/SiblingsAreDistinctlySorted.feature b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/SiblingsAreDistinctlySorted.feature index 3b97374aded..1716eeed9b8 100644 --- a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/SiblingsAreDistinctlySorted.feature +++ b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/SiblingsAreDistinctlySorted.feature @@ -21,9 +21,9 @@ Feature: Run integrity violation detection regarding sibling sorting | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: Create two siblings and set the sorting to the same value When the event NodeAggregateWithNodeWasCreated was published with payload: diff --git a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/SubtreeTagsAreInherited.feature b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/SubtreeTagsAreInherited.feature index 2a267ab5a9a..e27e4397a21 100644 --- a/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/SubtreeTagsAreInherited.feature +++ b/Neos.ContentGraph.DoctrineDbalAdapter/Tests/Behavior/Features/Projection/ProjectionIntegrityViolationDetection/SubtreeTagsAreInherited.feature @@ -21,9 +21,9 @@ Feature: Run integrity violation detection regarding subtree tag inheritance | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: Create nodes, disable the topmost and remove some restriction edges manually When the event NodeAggregateWithNodeWasCreated was published with payload: diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/01-RootNodeCreation/02-CreateRootNodeAggregateWithNode_WithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/01-RootNodeCreation/02-CreateRootNodeAggregateWithNode_WithoutDimensions.feature index f66ffe0a052..e82e8ed27fa 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/01-RootNodeCreation/02-CreateRootNodeAggregateWithNode_WithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/01-RootNodeCreation/02-CreateRootNodeAggregateWithNode_WithoutDimensions.feature @@ -75,18 +75,18 @@ Feature: Create a root node aggregate | nodeTypeName | "Neos.ContentRepository:Root" | When the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | | nodeTypeName | "Neos.ContentRepository:AnotherRoot" | Then I expect exactly 3 events to be published on stream "ContentStream:cs-identifier" And event at index 2 is of type "RootNodeAggregateWithNodeWasCreated" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | | nodeTypeName | "Neos.ContentRepository:AnotherRoot" | - | coveredDimensionSpacePoints | [[]] | - | nodeAggregateClassification | "root" | + | coveredDimensionSpacePoints | [[]] | + | nodeAggregateClassification | "root" | Then I expect the node aggregate "lady-eleonode-rootford" to exist And I expect this node aggregate to have no parent node aggregates diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/01-RootNodeCreation/05-CreateRootNodeAggregateWithNode_WithDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/01-RootNodeCreation/05-CreateRootNodeAggregateWithNode_WithDimensions.feature index 52cf739d9bd..9ec88801d9f 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/01-RootNodeCreation/05-CreateRootNodeAggregateWithNode_WithDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/01-RootNodeCreation/05-CreateRootNodeAggregateWithNode_WithDimensions.feature @@ -42,7 +42,7 @@ Feature: Create a root node aggregate | coveredDimensionSpacePoints | [{"language":"mul"},{"language":"de"},{"language":"en"},{"language":"gsw"}] | | nodeAggregateClassification | "root" | And event metadata at index 1 is: - | Key | Expected | + | Key | Expected | Then I expect the node aggregate "lady-eleonode-rootford" to exist And I expect this node aggregate to be classified as "root" @@ -89,8 +89,8 @@ Feature: Create a root node aggregate | nodeTypeName | "Neos.ContentRepository:Root" | When the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | | nodeTypeName | "Neos.ContentRepository:AnotherRoot" | Then I expect exactly 3 events to be published on stream "ContentStream:cs-identifier" @@ -98,7 +98,7 @@ Feature: Create a root node aggregate | Key | Expected | | contentStreamId | "cs-identifier" | | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository:AnotherRoot" | + | nodeTypeName | "Neos.ContentRepository:AnotherRoot" | | coveredDimensionSpacePoints | [{"language":"mul"},{"language":"de"},{"language":"en"},{"language":"gsw"}] | | nodeAggregateClassification | "root" | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/01-CreateNodeAggregateWithNode_ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/01-CreateNodeAggregateWithNode_ConstraintChecks.feature index 8870bfcc30e..0f8c4d2af4b 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/01-CreateNodeAggregateWithNode_ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/01-CreateNodeAggregateWithNode_ConstraintChecks.feature @@ -143,11 +143,11 @@ Feature: Create node aggregate with node | parentNodeAggregateId | "lady-eleonode-rootford" | | nodeName | "document" | When the command CreateNodeAggregateWithNode is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Node" | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Node" | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | Then the last command should have thrown an exception of type "NodeNameIsAlreadyCovered" diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/02-CreateNodeAggregateWithNode_ConstraintChecks_WithDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/02-CreateNodeAggregateWithNode_ConstraintChecks_WithDimensions.feature index 89c55e318bc..6531d1a23ca 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/02-CreateNodeAggregateWithNode_ConstraintChecks_WithDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/02-CreateNodeAggregateWithNode_ConstraintChecks_WithDimensions.feature @@ -129,10 +129,10 @@ Feature: Create node aggregate with node """ # We don't run structure adjustments here on purpose When the command CreateNodeAggregateWithNode is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | | nodeTypeName | "Neos.ContentRepository.Testing:LeafNode" | - | parentNodeAggregateId | "sir-david-nodenborough" | - | originDimensionSpacePoint | {"example":"source"} | - | nodeName | "tethered" | + | parentNodeAggregateId | "sir-david-nodenborough" | + | originDimensionSpacePoint | {"example":"source"} | + | nodeName | "tethered" | Then the last command should have thrown an exception of type "NodeNameIsAlreadyCovered" diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/03-CreateNodeAggregateWithNode_WithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/03-CreateNodeAggregateWithNode_WithoutDimensions.feature index 966629b61ae..0426aa6edb2 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/03-CreateNodeAggregateWithNode_WithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/03-CreateNodeAggregateWithNode_WithoutDimensions.feature @@ -224,16 +224,16 @@ Feature: Create node aggregate with node Then I expect exactly 4 events to be published on stream "ContentStream:cs-identifier" And event at index 3 is of type "NodeAggregateWithNodeWasCreated" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-nodeward-nodington-iii" | - | nodeTypeName | "Neos.ContentRepository.Testing:NodeWithoutTetheredChildNodes" | - | originDimensionSpacePoint | [] | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-nodeward-nodington-iii" | + | nodeTypeName | "Neos.ContentRepository.Testing:NodeWithoutTetheredChildNodes" | + | originDimensionSpacePoint | [] | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":[],"nodeAggregateId":"sir-david-nodenborough"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "esquire" | - | initialPropertyValues | [] | - | nodeAggregateClassification | "regular" | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "esquire" | + | initialPropertyValues | [] | + | nodeAggregateClassification | "regular" | And I am in workspace "live" and dimension space point {} And I expect node aggregate identifier "sir-nodeward-nodington-iii" and node path "esquire" to lead to node cs-identifier;sir-nodeward-nodington-iii;{} @@ -297,38 +297,38 @@ Feature: Create node aggregate with node Then I expect exactly 5 events to be published on stream "ContentStream:cs-identifier" And event at index 2 is of type "NodeAggregateWithNodeWasCreated" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:NodeWithTetheredChildNodes" | - | originDimensionSpacePoint | [] | - | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":[],"nodeAggregateId":null}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "node" | - | initialPropertyValues | {"text": {"value": "my default", "type": "string"}} | - | nodeAggregateClassification | "regular" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:NodeWithTetheredChildNodes" | + | originDimensionSpacePoint | [] | + | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":[],"nodeAggregateId":null}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "node" | + | initialPropertyValues | {"text": {"value": "my default", "type": "string"}} | + | nodeAggregateClassification | "regular" | And event at index 3 is of type "NodeAggregateWithNodeWasCreated" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:SubNode" | - | originDimensionSpacePoint | [] | - | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":[],"nodeAggregateId":null}] | - | parentNodeAggregateId | "sir-david-nodenborough" | - | nodeName | "child-node" | - | initialPropertyValues | {"text": {"value": "my sub default", "type": "string"}} | - | nodeAggregateClassification | "tethered" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:SubNode" | + | originDimensionSpacePoint | [] | + | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":[],"nodeAggregateId":null}] | + | parentNodeAggregateId | "sir-david-nodenborough" | + | nodeName | "child-node" | + | initialPropertyValues | {"text": {"value": "my sub default", "type": "string"}} | + | nodeAggregateClassification | "tethered" | And event at index 4 is of type "NodeAggregateWithNodeWasCreated" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nodimus-prime" | - | nodeTypeName | "Neos.ContentRepository.Testing:SubSubNode" | - | originDimensionSpacePoint | [] | - | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":[],"nodeAggregateId":null}] | - | parentNodeAggregateId | "nody-mc-nodeface" | - | nodeName | "grandchild-node" | - | initialPropertyValues | {"text": {"value": "my sub sub default", "type": "string"}} | - | nodeAggregateClassification | "tethered" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nodimus-prime" | + | nodeTypeName | "Neos.ContentRepository.Testing:SubSubNode" | + | originDimensionSpacePoint | [] | + | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":[],"nodeAggregateId":null}] | + | parentNodeAggregateId | "nody-mc-nodeface" | + | nodeName | "grandchild-node" | + | initialPropertyValues | {"text": {"value": "my sub sub default", "type": "string"}} | + | nodeAggregateClassification | "tethered" | And I expect the node aggregate "lady-eleonode-rootford" to exist And I expect this node aggregate to be classified as "root" diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/05-CreateNodeAggregateWithNode_ComplexDefaultAndInitialProperties.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/05-CreateNodeAggregateWithNode_ComplexDefaultAndInitialProperties.feature index 4ce56369ac4..09b5a975089 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/05-CreateNodeAggregateWithNode_ComplexDefaultAndInitialProperties.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/05-CreateNodeAggregateWithNode_ComplexDefaultAndInitialProperties.feature @@ -70,17 +70,17 @@ Feature: Create a node aggregate with complex default values Then I expect a node identified by cs-identifier;nody-mc-nodeface;{} to exist in the content graph And I expect this node to have the following serialized properties: - | Key | Type | Value | - | array | array | {"givenName":"Nody","familyName":"McNodeface"} | - | dayOfWeek | Neos\ContentRepository\Core\Tests\Behavior\Fixtures\DayOfWeek | "https://schema.org/Wednesday" | + | Key | Type | Value | + | array | array | {"givenName":"Nody","familyName":"McNodeface"} | + | dayOfWeek | Neos\ContentRepository\Core\Tests\Behavior\Fixtures\DayOfWeek | "https://schema.org/Wednesday" | | postalAddress | Neos\ContentRepository\Core\Tests\Behavior\Fixtures\PostalAddress | {"streetAddress":"28 31st of February Street","postalCode":12345,"addressLocality":"City","addressCountry":"Country"} | # DateTime must always be treated as immutable see DateTimeImmutable. # And the default value "now" must not be serialized as string "now" but as its actual value of the time of the command: - | now | DateTimeImmutable | NOT:"now" | - | date | DateTimeImmutable | "2020-08-20T18:56:15+00:00" | - | uri | GuzzleHttp\Psr7\Uri | "https://neos.io" | + | now | DateTimeImmutable | NOT:"now" | + | date | DateTimeImmutable | "2020-08-20T18:56:15+00:00" | + | uri | GuzzleHttp\Psr7\Uri | "https://neos.io" | # Defaults while deserializing value objects will be manifested at the time of the command: (valueAddedTaxIncluded was not explicitly declared above) - | price | Neos\ContentRepository\Core\Tests\Behavior\Fixtures\PriceSpecification | {"price":13.37,"priceCurrency":"EUR","valueAddedTaxIncluded":true} | + | price | Neos\ContentRepository\Core\Tests\Behavior\Fixtures\PriceSpecification | {"price":13.37,"priceCurrency":"EUR","valueAddedTaxIncluded":true} | And I expect this node to have the following properties: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/06-CreateNodeAggregateWithNode_NodeTypeConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/06-CreateNodeAggregateWithNode_NodeTypeConstraintChecks.feature index 2e29f8669d4..a5939c72b59 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/06-CreateNodeAggregateWithNode_NodeTypeConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/02-NodeCreation/06-CreateNodeAggregateWithNode_NodeTypeConstraintChecks.feature @@ -49,11 +49,11 @@ Feature: Create node aggregate with node # issue https://github.com/neos/neos-development-collection/issues/4351 Scenario: Tethered restricted collection Given the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing.TetheredCollection" | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | tetheredDescendantNodeAggregateIds | { "collection": "collection-node-id"} | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing.TetheredCollection" | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | tetheredDescendantNodeAggregateIds | { "collection": "collection-node-id"} | Then I expect the node aggregate "sir-david-nodenborough" to exist Then I expect the node aggregate "collection-node-id" to exist # TetheredCollection @@ -61,26 +61,26 @@ Feature: Create node aggregate with node # allowed via parent node constraints: Node When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Node" | - | parentNodeAggregateId | "collection-node-id" | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Node" | + | parentNodeAggregateId | "collection-node-id" | Then I expect the node aggregate "nody-mc-nodeface" to exist # allowed via grant parent node constraints: PrettyNode When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "pretty-node" | - | nodeTypeName | "Neos.ContentRepository.Testing:PrettyNode" | - | parentNodeAggregateId | "collection-node-id" | + | Key | Value | + | nodeAggregateId | "pretty-node" | + | nodeTypeName | "Neos.ContentRepository.Testing:PrettyNode" | + | parentNodeAggregateId | "collection-node-id" | Then I expect the node aggregate "pretty-node" to exist # disallowed via grant parent node constraints: UglyNode And the command CreateNodeAggregateWithNode is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "nordisch-nodel" | - | nodeTypeName | "Neos.ContentRepository.Testing:UglyNode" | - | parentNodeAggregateId | "collection-node-id" | + | Key | Value | + | nodeAggregateId | "nordisch-nodel" | + | nodeTypeName | "Neos.ContentRepository.Testing:UglyNode" | + | parentNodeAggregateId | "collection-node-id" | Then the last command should have thrown an exception of type "NodeConstraintException" with code 1520011791 Scenario: Non-tethered restricted collection @@ -90,10 +90,10 @@ Feature: Create node aggregate with node | nodeTypeName | "Neos.ContentRepository.Testing:Node" | | parentNodeAggregateId | "lady-eleonode-rootford" | When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "collection-node-id" | - | nodeTypeName | "Neos.ContentRepository.Testing:RestrictedCollection" | - | parentNodeAggregateId | "sir-david-nodenborough" | + | Key | Value | + | nodeAggregateId | "collection-node-id" | + | nodeTypeName | "Neos.ContentRepository.Testing:RestrictedCollection" | + | parentNodeAggregateId | "sir-david-nodenborough" | Then I expect the node aggregate "sir-david-nodenborough" to exist Then I expect the node aggregate "collection-node-id" to exist # Node @@ -101,16 +101,16 @@ Feature: Create node aggregate with node # allowed via grant parent node constraints: PrettyNode When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "pretty-node" | - | nodeTypeName | "Neos.ContentRepository.Testing:PrettyNode" | - | parentNodeAggregateId | "collection-node-id" | + | Key | Value | + | nodeAggregateId | "pretty-node" | + | nodeTypeName | "Neos.ContentRepository.Testing:PrettyNode" | + | parentNodeAggregateId | "collection-node-id" | Then I expect the node aggregate "pretty-node" to exist # disallowed via grant parent node constraints: UglyNode And the command CreateNodeAggregateWithNode is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "nordisch-nodel" | - | nodeTypeName | "Neos.ContentRepository.Testing:UglyNode" | - | parentNodeAggregateId | "collection-node-id" | + | Key | Value | + | nodeAggregateId | "nordisch-nodel" | + | nodeTypeName | "Neos.ContentRepository.Testing:UglyNode" | + | parentNodeAggregateId | "collection-node-id" | Then the last command should have thrown an exception of type "NodeConstraintException" with code 1707561400 diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/03-NodeVariation/02-CreateNodeSpecializationVariant.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/03-NodeVariation/02-CreateNodeSpecializationVariant.feature index bc533e5c242..a871d7ec28c 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/03-NodeVariation/02-CreateNodeSpecializationVariant.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/03-NodeVariation/02-CreateNodeSpecializationVariant.feature @@ -171,7 +171,7 @@ Feature: Create node specialization | cs-identifier;youngest-mc-nodeface;{"example":"source"} | And I expect node aggregate identifier "elder-mc-nodeface" and node path "elder-document" to lead to node cs-identifier;elder-mc-nodeface;{"example":"source"} And I expect this node to have the following preceding siblings: - | NodeDiscriminator | + | NodeDiscriminator | | cs-identifier;eldest-mc-nodeface;{"example":"source"} | And I expect this node to have the following succeeding siblings: | NodeDiscriminator | @@ -235,7 +235,7 @@ Feature: Create node specialization | cs-identifier;youngest-mc-nodeface;{"example":"source"} | And I expect node aggregate identifier "elder-mc-nodeface" and node path "elder-document" to lead to node cs-identifier;elder-mc-nodeface;{"example":"source"} And I expect this node to have the following preceding siblings: - | NodeDiscriminator | + | NodeDiscriminator | | cs-identifier;eldest-mc-nodeface;{"example":"source"} | And I expect this node to have the following succeeding siblings: | NodeDiscriminator | @@ -387,7 +387,7 @@ Feature: Create node specialization | cs-identifier;youngest-mc-nodeface;{"example":"source"} | And I expect node aggregate identifier "elder-mc-nodeface" and node path "elder-document" to lead to node cs-identifier;elder-mc-nodeface;{"example":"source"} And I expect this node to have the following preceding siblings: - | NodeDiscriminator | + | NodeDiscriminator | | cs-identifier;eldest-mc-nodeface;{"example":"source"} | And I expect this node to have the following succeeding siblings: | NodeDiscriminator | @@ -451,7 +451,7 @@ Feature: Create node specialization | cs-identifier;youngest-mc-nodeface;{"example":"source"} | And I expect node aggregate identifier "elder-mc-nodeface" and node path "elder-document" to lead to node cs-identifier;elder-mc-nodeface;{"example":"source"} And I expect this node to have the following preceding siblings: - | NodeDiscriminator | + | NodeDiscriminator | | cs-identifier;eldest-mc-nodeface;{"example":"source"} | And I expect this node to have the following succeeding siblings: | NodeDiscriminator | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/04-NodeModification/01-SetNodeProperties_ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/04-NodeModification/01-SetNodeProperties_ConstraintChecks.feature index 416ffda4971..0e3c30781bd 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/04-NodeModification/01-SetNodeProperties_ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/04-NodeModification/01-SetNodeProperties_ConstraintChecks.feature @@ -20,27 +20,27 @@ Feature: Set node properties: Constraint checks And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | # We have to add another node since root nodes have no dimension space points and thus cannot be varied # Node /document And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeName | parentNodeAggregateId | nodeTypeName | - | nody-mc-nodeface | document | lady-eleonode-rootford | Neos.ContentRepository.Testing:Document | + | nodeAggregateId | nodeName | parentNodeAggregateId | nodeTypeName | + | nody-mc-nodeface | document | lady-eleonode-rootford | Neos.ContentRepository.Testing:Document | Scenario: Try to set properties in a content stream that does not exist yet When the command SetNodeProperties is executed with payload and exceptions are caught: | Key | Value | - | workspaceName | "i-do-not-exist-yet" | - | nodeAggregateId | "nody-mc-nodeface" | + | workspaceName | "i-do-not-exist-yet" | + | nodeAggregateId | "nody-mc-nodeface" | | originDimensionSpacePoint | {"language":"de"} | | propertyValues | {"text":"New text"} | Then the last command should have thrown an exception of type "WorkspaceDoesNotExist" @@ -50,16 +50,16 @@ Feature: Set node properties: Constraint checks | Key | Value | | contentStreamId | "cs-identifier" | When the command SetNodeProperties is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | originDimensionSpacePoint | {"language":"de"} | - | propertyValues | {"text":"New text"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | originDimensionSpacePoint | {"language":"de"} | + | propertyValues | {"text":"New text"} | Then the last command should have thrown an exception of type "ContentStreamIsClosed" Scenario: Try to set properties on a node aggregate that currently does not exist When the command SetNodeProperties is executed with payload and exceptions are caught: | Key | Value | - | nodeAggregateId | "i-currently-do-not-exist" | + | nodeAggregateId | "i-currently-do-not-exist" | | originDimensionSpacePoint | {"language":"de"} | | propertyValues | {"text":"New text"} | Then the last command should have thrown an exception of type "NodeAggregateCurrentlyDoesNotExist" @@ -67,7 +67,7 @@ Feature: Set node properties: Constraint checks Scenario: Try to set properties on a root node aggregate When the command SetNodeProperties is executed with payload and exceptions are caught: | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | + | nodeAggregateId | "lady-eleonode-rootford" | | originDimensionSpacePoint | {"language":"de"} | | propertyValues | {} | Then the last command should have thrown an exception of type "NodeAggregateIsRoot" @@ -75,7 +75,7 @@ Feature: Set node properties: Constraint checks Scenario: Try to set properties in an origin dimension space point that does not exist When the command SetNodeProperties is executed with payload and exceptions are caught: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | nodeAggregateId | "nody-mc-nodeface" | | originDimensionSpacePoint | {"language":"wat"} | | propertyValues | {"text":"New text"} | Then the last command should have thrown an exception of type "DimensionSpacePointNotFound" @@ -83,21 +83,21 @@ Feature: Set node properties: Constraint checks Scenario: Try to set properties in an origin dimension space point the node aggregate does not occupy When the command SetNodeProperties is executed with payload and exceptions are caught: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | nodeAggregateId | "nody-mc-nodeface" | | originDimensionSpacePoint | {"language":"gsw"} | | propertyValues | {"text":"New text"} | Then the last command should have thrown an exception of type "DimensionSpacePointIsNotYetOccupied" Scenario: Try to set a property the node type does not declare When the command SetNodeProperties is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | propertyValues | {"i-do-not-exist": "whatever"} | + | propertyValues | {"i-do-not-exist": "whatever"} | Then the last command should have thrown an exception of type "PropertyCannotBeSet" with code 1615664798 Scenario: Try to set a property with a value of a wrong type When the command SetNodeProperties is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | propertyValues | {"postalAddress": "28 31st of February Street"} | + | propertyValues | {"postalAddress": "28 31st of February Street"} | Then the last command should have thrown an exception of type "PropertyCannotBeSet" with code 1615466573 diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/04-NodeModification/03-SetNodeProperties_PropertyScopes.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/04-NodeModification/03-SetNodeProperties_PropertyScopes.feature index 8f24c0a6eb8..dd44f709c90 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/04-NodeModification/03-SetNodeProperties_PropertyScopes.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/04-NodeModification/03-SetNodeProperties_PropertyScopes.feature @@ -31,36 +31,36 @@ Feature: Set node properties with different scopes And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"mul"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | # We have to add another node since root nodes have no dimension space points and thus cannot be varied # Node /document And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeName | parentNodeAggregateId | nodeTypeName | - | nody-mc-nodeface | document | lady-eleonode-rootford | Neos.ContentRepository.Testing:Document | + | nodeAggregateId | nodeName | parentNodeAggregateId | nodeTypeName | + | nody-mc-nodeface | document | lady-eleonode-rootford | Neos.ContentRepository.Testing:Document | And the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | sourceOrigin | {"language":"mul"} | - | targetOrigin | {"language":"de"} | + | sourceOrigin | {"language":"mul"} | + | targetOrigin | {"language":"de"} | And the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | sourceOrigin | {"language":"mul"} | - | targetOrigin | {"language":"gsw"} | + | sourceOrigin | {"language":"mul"} | + | targetOrigin | {"language":"gsw"} | Scenario: Set node properties And the command SetNodeProperties is executed with payload: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | nodeAggregateId | "nody-mc-nodeface" | | originDimensionSpacePoint | {"language": "de"} | | propertyValues | {"unscopedProperty":"My new string", "nodeScopedProperty":"My new string", "specializationsScopedProperty":"My new string", "nodeAggregateScopedProperty":"My new string"} | Then I expect a node identified by cs-identifier;nody-mc-nodeface;{"language":"mul"} to exist in the content graph diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/01-SetNodeReferences_ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/01-SetNodeReferences_ConstraintChecks.feature index 86457bb59ec..9c3517cef20 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/01-SetNodeReferences_ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/01-SetNodeReferences_ConstraintChecks.feature @@ -40,65 +40,65 @@ Feature: Constraint checks on SetNodeReferences And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | - | source-nodandaise | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | - | anthony-destinode | Neos.ContentRepository.Testing:ReferencedNode | lady-eleonode-rootford | - | berta-destinode | Neos.ContentRepository.Testing:ReferencedNode | lady-eleonode-rootford | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | + | source-nodandaise | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | + | anthony-destinode | Neos.ContentRepository.Testing:ReferencedNode | lady-eleonode-rootford | + | berta-destinode | Neos.ContentRepository.Testing:ReferencedNode | lady-eleonode-rootford | Scenario: Try to reference nodes in a workspace whose content stream is closed When the command CloseContentStream is executed with payload: | Key | Value | | contentStreamId | "cs-identifier" | When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target":"anthony-destinode"}] | + | Key | Value | + | sourceNodeAggregateId | "source-nodandaise" | + | referenceName | "referenceProperty" | + | references | [{"target":"anthony-destinode"}] | Then the last command should have thrown an exception of type "ContentStreamIsClosed" # checks for contentStreamId Scenario: Try to reference nodes in a non-existent content stream When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | - | workspaceName | "i-do-not-exist" | - | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target":"anthony-destinode"}] | + | Key | Value | + | workspaceName | "i-do-not-exist" | + | sourceNodeAggregateId | "source-nodandaise" | + | referenceName | "referenceProperty" | + | references | [{"target":"anthony-destinode"}] | Then the last command should have thrown an exception of type "WorkspaceDoesNotExist" with code 1513924741 # checks for sourceNodeAggregateId Scenario: Try to reference nodes in a non-existent node aggregate When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "i-do-not-exist" | - | referenceName | "referenceProperty" | - | references | [{"target":"anthony-destinode"}] | + | referenceName | "referenceProperty" | + | references | [{"target":"anthony-destinode"}] | Then the last command should have thrown an exception of type "NodeAggregateCurrentlyDoesNotExist" with code 1541678486 Scenario: Try to reference nodes in a root node aggregate When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "lady-eleonode-rootford" | - | referenceName | "referenceProperty" | - | references | [{"target":"anthony-destinode"}] | + | referenceName | "referenceProperty" | + | references | [{"target":"anthony-destinode"}] | Then the last command should have thrown an exception of type "NodeAggregateIsRoot" # checks for sourceOriginDimensionSpacePoint Scenario: Try to reference nodes in an origin dimension space point that does not exist When the command SetNodeReferences is executed with payload and exceptions are caught: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | sourceOriginDimensionSpacePoint | {"undeclared":"undefined"} | | referenceName | "referenceProperty" | | references | [{"target":"anthony-destinode"}] | @@ -107,7 +107,7 @@ Feature: Constraint checks on SetNodeReferences Scenario: Try to reference nodes in an origin dimension space point the source node aggregate does not occupy When the command SetNodeReferences is executed with payload and exceptions are caught: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | sourceOriginDimensionSpacePoint | {"language":"en"} | | referenceName | "referenceProperty" | | references | [{"target":"anthony-destinode"}] | @@ -116,55 +116,55 @@ Feature: Constraint checks on SetNodeReferences # checks for destinationnodeAggregateIds Scenario: Try to reference a non-existent node aggregate When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target":"i-do-not-exist"}] | + | referenceName | "referenceProperty" | + | references | [{"target":"i-do-not-exist"}] | Then the last command should have thrown an exception of type "NodeAggregateCurrentlyDoesNotExist" with code 1541678486 Scenario: Try to reference a root node aggregate When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target":"lady-eleonode-rootford"}] | + | referenceName | "referenceProperty" | + | references | [{"target":"lady-eleonode-rootford"}] | Then the last command should have thrown an exception of type "NodeAggregateIsRoot" Scenario: Try to set references exceeding the maxItems count When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "constrainedReferenceCount" | - | references | [{"target":"anthony-destinode"}, {"target":"berta-destinode"}] | + | Key | Value | + | sourceNodeAggregateId | "source-nodandaise" | + | referenceName | "constrainedReferenceCount" | + | references | [{"target":"anthony-destinode"}, {"target":"berta-destinode"}] | Then the last command should have thrown an exception of type "ReferenceCannotBeSet" with code 1700150156 Scenario: Try to set references exceeding the maxItems count for legacy property reference declaration When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target":"anthony-destinode"}, {"target":"berta-destinode"}] | + | Key | Value | + | sourceNodeAggregateId | "source-nodandaise" | + | referenceName | "referenceProperty" | + | references | [{"target":"anthony-destinode"}, {"target":"berta-destinode"}] | Then the last command should have thrown an exception of type "ReferenceCannotBeSet" with code 1700150156 Scenario: Try to reference a node aggregate of a type not matching the constraints When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "constrainedReferenceProperty" | - | references | [{"target":"anthony-destinode"}] | + | referenceName | "constrainedReferenceProperty" | + | references | [{"target":"anthony-destinode"}] | Then the last command should have thrown an exception of type "ReferenceCannotBeSet" with code 1648502149 Scenario: Try to reference a node aggregate which does not cover the source origin Given the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:NodeWithReferences" | - | originDimensionSpacePoint | {"language":"en"} | - | parentNodeAggregateId | "lady-eleonode-rootford" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:NodeWithReferences" | + | originDimensionSpacePoint | {"language":"en"} | + | parentNodeAggregateId | "lady-eleonode-rootford" | When the command SetNodeReferences is executed with payload and exceptions are caught: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | referenceName | "referenceProperty" | | references | [{"target":"sir-david-nodenborough"}] | @@ -173,42 +173,42 @@ Feature: Constraint checks on SetNodeReferences # checks for referenceName Scenario: Try to reference nodes in an undefined property: When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "i-do-not-exist" | - | references | [{"target":"anthony-destinode"}] | + | referenceName | "i-do-not-exist" | + | references | [{"target":"anthony-destinode"}] | Then the last command should have thrown an exception of type "ReferenceCannotBeSet" with code 1618670106 Scenario: Try to reference nodes in a property that is not of type reference(s): When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "nonReferenceProperty" | - | references | [{"target":"anthony-destinode"}] | + | referenceName | "nonReferenceProperty" | + | references | [{"target":"anthony-destinode"}] | Then the last command should have thrown an exception of type "ReferenceCannotBeSet" with code 1618670106 Scenario: Try to reference a node aggregate using a property the reference does not declare When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referencePropertyWithProperties" | - | references | [{"target":"anthony-destinode", "properties":{"i-do-not-exist": "whatever"}}] | + | referenceName | "referencePropertyWithProperties" | + | references | [{"target":"anthony-destinode", "properties":{"i-do-not-exist": "whatever"}}] | Then the last command should have thrown an exception of type "ReferenceCannotBeSet" with code 1658406662 Scenario: Try to set a property with a value of a wrong type When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | + | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referencePropertyWithProperties" | - | references | [{"target":"anthony-destinode", "properties":{"postalAddress": "28 31st of February Street"}}] | + | referenceName | "referencePropertyWithProperties" | + | references | [{"target":"anthony-destinode", "properties":{"postalAddress": "28 31st of February Street"}}] | Then the last command should have thrown an exception of type "ReferenceCannotBeSet" with code 1658406762 Scenario: Node reference cannot hold multiple targets to the same node When the command SetNodeReferences is executed with payload and exceptions are caught: - | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referencesProperty" | - | references | [{"target":"anthony-destinode"}, {"target":"anthony-destinode"}] | + | Key | Value | + | sourceNodeAggregateId | "source-nodandaise" | + | referenceName | "referencesProperty" | + | references | [{"target":"anthony-destinode"}, {"target":"anthony-destinode"}] | Then the last command should have thrown an exception of type "InvalidArgumentException" with code 1700150910 diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/02-SetNodeReferences_WithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/02-SetNodeReferences_WithoutDimensions.feature index 8e9cb1704f4..1db0714c012 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/02-SetNodeReferences_WithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/02-SetNodeReferences_WithoutDimensions.feature @@ -82,19 +82,19 @@ Feature: Node References without Dimensions Scenario: Ensure that a single reference with properties between nodes can be set and read When the command SetNodeReferences is executed with payload: - | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referencePropertyWithProperty" | + | Key | Value | + | sourceNodeAggregateId | "source-nodandaise" | + | referenceName | "referencePropertyWithProperty" | | references | [{"target": "anthony-destinode", "properties":{"text":"my text", "dayOfWeek":"DayOfWeek:https://schema.org/Friday", "postalAddress":"PostalAddress:dummy"}}] | Then I expect node aggregate identifier "source-nodandaise" to lead to node cs-identifier;source-nodandaise;{} And I expect this node to have the following references: - | Name | Node | Properties | + | Name | Node | Properties | | referencePropertyWithProperty | cs-identifier;anthony-destinode;{} | {"text":"my text", "dayOfWeek":"DayOfWeek:https://schema.org/Friday", "postalAddress":"PostalAddress:dummy"} | And I expect node aggregate identifier "anthony-destinode" to lead to node cs-identifier;anthony-destinode;{} And I expect this node to be referenced by: - | Name | Node | Properties | + | Name | Node | Properties | | referencePropertyWithProperty | cs-identifier;source-nodandaise;{} | {"text":"my text", "dayOfWeek":"DayOfWeek:https://schema.org/Friday", "postalAddress":"PostalAddress:dummy"} | Scenario: Ensure that multiple references between nodes can be set and read @@ -122,25 +122,25 @@ Feature: Node References without Dimensions Scenario: Ensure that multiple references with properties between nodes can be set and read When the command SetNodeReferences is executed with payload: - | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referencesPropertyWithProperty" | + | Key | Value | + | sourceNodeAggregateId | "source-nodandaise" | + | referenceName | "referencesPropertyWithProperty" | | references | [{"target":"berta-destinode", "properties":{"text":"my text", "dayOfWeek":"DayOfWeek:https://schema.org/Wednesday", "postalAddress":"PostalAddress:dummy"}}, {"target":"carl-destinode", "properties":{"text":"my other text", "dayOfWeek":"DayOfWeek:https://schema.org/Friday", "postalAddress":"PostalAddress:anotherDummy"}}] | Then I expect node aggregate identifier "source-nodandaise" to lead to node cs-identifier;source-nodandaise;{} And I expect this node to have the following references: - | Name | Node | Properties | - | referencesPropertyWithProperty | cs-identifier;berta-destinode;{} | {"text":"my text", "dayOfWeek":"DayOfWeek:https://schema.org/Wednesday", "postalAddress":"PostalAddress:dummy"} | + | Name | Node | Properties | + | referencesPropertyWithProperty | cs-identifier;berta-destinode;{} | {"text":"my text", "dayOfWeek":"DayOfWeek:https://schema.org/Wednesday", "postalAddress":"PostalAddress:dummy"} | | referencesPropertyWithProperty | cs-identifier;carl-destinode;{} | {"text":"my other text", "dayOfWeek":"DayOfWeek:https://schema.org/Friday", "postalAddress":"PostalAddress:anotherDummy"} | And I expect node aggregate identifier "berta-destinode" to lead to node cs-identifier;berta-destinode;{} And I expect this node to be referenced by: - | Name | Node | Properties | + | Name | Node | Properties | | referencesPropertyWithProperty | cs-identifier;source-nodandaise;{} | {"text":"my text", "dayOfWeek":"DayOfWeek:https://schema.org/Wednesday", "postalAddress":"PostalAddress:dummy"} | And I expect node aggregate identifier "carl-destinode" to lead to node cs-identifier;carl-destinode;{} And I expect this node to be referenced by: - | Name | Node | Properties | + | Name | Node | Properties | | referencesPropertyWithProperty | cs-identifier;source-nodandaise;{} | {"text":"my other text", "dayOfWeek":"DayOfWeek:https://schema.org/Friday", "postalAddress":"PostalAddress:anotherDummy"} | Scenario: Ensure that references between nodes can be set and overwritten diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/03-SetNodeReferences_WithDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/03-SetNodeReferences_WithDimensions.feature index 518bcc417ca..4183ec3ff32 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/03-SetNodeReferences_WithDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/03-SetNodeReferences_WithDimensions.feature @@ -24,27 +24,27 @@ Feature: Node References with Dimensions And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | - | source-nodandaise | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | - | anthony-destinode | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | + | source-nodandaise | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | + | anthony-destinode | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | Scenario: Create a reference and check whether they can be read in the different subgraphs When the command SetNodeReferences is executed with payload: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target": "anthony-destinode"}] | + | referenceName | "referenceProperty" | + | references | [{"target": "anthony-destinode"}] | When I am in workspace "live" and dimension space point {"language": "de"} Then I expect node aggregate identifier "source-nodandaise" to lead to node cs-identifier;source-nodandaise;{"language": "de"} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/04-SetNodeReferences_PropertyScopes.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/04-SetNodeReferences_PropertyScopes.feature index 586cd61ed98..047b825522e 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/04-SetNodeReferences_PropertyScopes.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/04-SetNodeReferences_PropertyScopes.feature @@ -38,79 +38,79 @@ Feature: Set node properties with different scopes And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"mul"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | # We have to add another node since root nodes have no dimension space points and thus cannot be varied # Node /document And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | parentNodeAggregateId | nodeTypeName | - | source-nodandaise | lady-eleonode-rootford | Neos.ContentRepository.Testing:NodeWithReferences | - | anthony-destinode | lady-eleonode-rootford | Neos.ContentRepository.Testing:NodeWithReferences | + | nodeAggregateId | parentNodeAggregateId | nodeTypeName | + | source-nodandaise | lady-eleonode-rootford | Neos.ContentRepository.Testing:NodeWithReferences | + | anthony-destinode | lady-eleonode-rootford | Neos.ContentRepository.Testing:NodeWithReferences | And the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "source-nodandaise" | - | sourceOrigin | {"language":"mul"} | - | targetOrigin | {"language":"de"} | + | sourceOrigin | {"language":"mul"} | + | targetOrigin | {"language":"de"} | And the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "source-nodandaise" | - | sourceOrigin | {"language":"mul"} | - | targetOrigin | {"language":"gsw"} | + | sourceOrigin | {"language":"mul"} | + | targetOrigin | {"language":"gsw"} | Scenario: Set node properties And the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | referenceName | "unscopedReference" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | references | [{"target": "anthony-destinode"}] | And the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | referenceName | "unscopedReferences" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | references | [{"target": "anthony-destinode"}] | And the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | referenceName | "nodeScopedReference" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | references | [{"target": "anthony-destinode"}] | And the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | referenceName | "nodeScopedReferences" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | references | [{"target": "anthony-destinode"}] | And the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | referenceName | "nodeAggregateScopedReference" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | references | [{"target": "anthony-destinode"}] | And the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | referenceName | "nodeAggregateScopedReferences" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | references | [{"target": "anthony-destinode"}] | And the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | referenceName | "specializationsScopedReference" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | references | [{"target": "anthony-destinode"}] | And the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | referenceName | "specializationsScopedReferences" | | sourceOriginDimensionSpacePoint | {"language": "de"} | | references | [{"target": "anthony-destinode"}] | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/05-NodeVariation_After_NodeReferencing.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/05-NodeVariation_After_NodeReferencing.feature index f8d7d89b193..8b3cfacf360 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/05-NodeVariation_After_NodeReferencing.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/05-NodeReferencing/05-NodeVariation_After_NodeReferencing.feature @@ -24,33 +24,33 @@ Feature: Node References with Dimensions And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | - | source-nodandaise | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | - | anthony-destinode | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | + | source-nodandaise | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | + | anthony-destinode | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | Scenario: Create a reference, then specialize the source node; and the references should exist on the specialization When the command SetNodeReferences is executed with payload: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target": "anthony-destinode"}] | + | referenceName | "referenceProperty" | + | references | [{"target": "anthony-destinode"}] | When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "source-nodandaise" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"ch"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"ch"} | # after specialization, the reference must still exist on the specialized node When I am in workspace "live" and dimension space point {"language": "ch"} @@ -78,7 +78,7 @@ Feature: Node References with Dimensions # now, when modifying the specialization reference, only the specialization is changed. When the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | sourceOriginDimensionSpacePoint | {"language": "ch"} | | referenceName | "referenceProperty" | | references | [{"target": "source-nodandaise"}] | @@ -106,14 +106,14 @@ Feature: Node References with Dimensions Scenario: specialize the source node, only set reference on the specialization. Then, the reference should only appear on the specialization When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "source-nodandaise" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"ch"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"ch"} | When the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | sourceOriginDimensionSpacePoint | {"language": "ch"} | | referenceName | "referenceProperty" | | references | [{"target": "anthony-destinode"}] | @@ -142,22 +142,22 @@ Feature: Node References with Dimensions Scenario: Create a reference, then create a peer variant of the source node; and the references should exist on the peer # prerequisite: "anthony-destinode" also exists in EN When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "anthony-destinode" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"en"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"en"} | When the command SetNodeReferences is executed with payload: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target": "anthony-destinode"}] | + | referenceName | "referenceProperty" | + | references | [{"target": "anthony-destinode"}] | When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "source-nodandaise" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"en"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"en"} | # after creating a peer, the reference must still exist on the peer node When I am in workspace "live" and dimension space point {"language": "en"} @@ -195,7 +195,7 @@ Feature: Node References with Dimensions # now, when modifying the peer reference, only the peer is changed. When the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "source-nodandaise" | + | sourceNodeAggregateId | "source-nodandaise" | | sourceOriginDimensionSpacePoint | {"language": "en"} | | referenceName | "referenceProperty" | | references | [{"target": "source-nodandaise"}] | @@ -234,25 +234,25 @@ Feature: Node References with Dimensions Scenario: Create a reference, then create a generalization of the source node; and the references should exist on the generalization # We need to create a new ch-only node to test this; as by default, only a german node already exists shining through in ch And the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "ch-only" | - | originDimensionSpacePoint | {"language": "ch"} | - | nodeTypeName | "Neos.ContentRepository.Testing:NodeWithReferences" | - | parentNodeAggregateId | "lady-eleonode-rootford" | + | Key | Value | + | nodeAggregateId | "ch-only" | + | originDimensionSpacePoint | {"language": "ch"} | + | nodeTypeName | "Neos.ContentRepository.Testing:NodeWithReferences" | + | parentNodeAggregateId | "lady-eleonode-rootford" | When the command SetNodeReferences is executed with payload: | Key | Value | - | sourceNodeAggregateId | "ch-only" | + | sourceNodeAggregateId | "ch-only" | | sourceOriginDimensionSpacePoint | {"language": "ch"} | | referenceName | "referenceProperty" | | references | [{"target": "anthony-destinode"}] | # here we generalize When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "ch-only" | - | sourceOrigin | {"language":"ch"} | - | targetOrigin | {"language":"de"} | + | sourceOrigin | {"language":"ch"} | + | targetOrigin | {"language":"de"} | # after generalizing, the reference must still exist on the generalized node When I am in workspace "live" and dimension space point {"language": "de"} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/01-DisableNodeAggregate_ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/01-DisableNodeAggregate_ConstraintChecks.feature index 35736f7519d..3386be68455 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/01-DisableNodeAggregate_ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/01-DisableNodeAggregate_ConstraintChecks.feature @@ -17,26 +17,26 @@ Feature: Constraint checks on node aggregate disabling And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | sir-david-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | sir-david-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | Scenario: Try to disable a node aggregate in a non-existing content stream When the command DisableNodeAggregate is executed with payload and exceptions are caught: - | Key | Value | - | workspaceName | "i-do-not-exist" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | workspaceName | "i-do-not-exist" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeVariantSelectionStrategy | "allVariants" | Then the last command should have thrown an exception of type "WorkspaceDoesNotExist" Scenario: Try to disable a node aggregate in a workspace whose content stream is closed @@ -44,31 +44,31 @@ Feature: Constraint checks on node aggregate disabling | Key | Value | | contentStreamId | "cs-identifier" | When the command DisableNodeAggregate is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeVariantSelectionStrategy | "allVariants" | Then the last command should have thrown an exception of type "ContentStreamIsClosed" Scenario: Try to disable a non-existing node aggregate When the command DisableNodeAggregate is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "i-do-not-exist" | - | nodeVariantSelectionStrategy | "allVariants" | - | tag | "disabled" | + | Key | Value | + | nodeAggregateId | "i-do-not-exist" | + | nodeVariantSelectionStrategy | "allVariants" | + | tag | "disabled" | Scenario: Try to disable an already disabled node aggregate Given the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"language": "de"} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"language": "de"} | + | nodeVariantSelectionStrategy | "allVariants" | # Note: The behavior has been changed with https://github.com/neos/neos-development-collection/pull/4284 and the test was adjusted accordingly When the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"language": "de"} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"language": "de"} | + | nodeVariantSelectionStrategy | "allVariants" | Then I expect exactly 4 events to be published on stream with prefix "ContentStream:cs-identifier" And event at index 3 is of type "SubtreeWasTagged" with payload: | Key | Expected | @@ -80,16 +80,16 @@ Feature: Constraint checks on node aggregate disabling Scenario: Try to disable a node aggregate in a non-existing dimension space point When the command DisableNodeAggregate is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"undeclared": "undefined"} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"undeclared": "undefined"} | + | nodeVariantSelectionStrategy | "allVariants" | Then the last command should have thrown an exception of type "DimensionSpacePointNotFound" Scenario: Try to disable a node aggregate in a dimension space point it does not cover When the command DisableNodeAggregate is executed with payload and exceptions are caught: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"language": "en"} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"language": "en"} | + | nodeVariantSelectionStrategy | "allVariants" | Then the last command should have thrown an exception of type "NodeAggregateDoesCurrentlyNotCoverDimensionSpacePoint" diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/04-EnableNodeAggregate_ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/04-EnableNodeAggregate_ConstraintChecks.feature index 5a6c85c5a5d..7f946ea3916 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/04-EnableNodeAggregate_ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/04-EnableNodeAggregate_ConstraintChecks.feature @@ -17,32 +17,32 @@ Feature: Enable a node aggregate And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | sir-david-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | sir-david-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | Scenario: Try to enable a node aggregate in a non-existing content stream When the command EnableNodeAggregate is executed with payload and exceptions are caught: | Key | Value | - | workspaceName | "i-do-not-exist" | - | nodeAggregateId | "sir-david-nodenborough" | + | workspaceName | "i-do-not-exist" | + | nodeAggregateId | "sir-david-nodenborough" | | nodeVariantSelectionStrategy | "allVariants" | Then the last command should have thrown an exception of type "WorkspaceDoesNotExist" Scenario: Try to enable a non-existing node aggregate When the command EnableNodeAggregate is executed with payload and exceptions are caught: | Key | Value | - | nodeAggregateId | "i-do-not-exist" | + | nodeAggregateId | "i-do-not-exist" | | nodeVariantSelectionStrategy | "allVariants" | Then the last command should have thrown an exception of type "NodeAggregateCurrentlyDoesNotExist" @@ -50,14 +50,14 @@ Feature: Enable a node aggregate Scenario: Try to enable an already enabled node aggregate When the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | + | nodeAggregateId | "sir-david-nodenborough" | | nodeVariantSelectionStrategy | "allVariants" | Then I expect exactly 3 events to be published on stream with prefix "ContentStream:cs-identifier" Scenario: Try to enable a node aggregate in a non-existing dimension space point When the command EnableNodeAggregate is executed with payload and exceptions are caught: | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | + | nodeAggregateId | "sir-david-nodenborough" | | coveredDimensionSpacePoint | {"undeclared": "undefined"} | | nodeVariantSelectionStrategy | "allVariants" | Then the last command should have thrown an exception of type "DimensionSpacePointNotFound" @@ -65,7 +65,7 @@ Feature: Enable a node aggregate Scenario: Try to disable a node aggregate in a dimension space point it does not cover When the command EnableNodeAggregate is executed with payload and exceptions are caught: | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | + | nodeAggregateId | "sir-david-nodenborough" | | coveredDimensionSpacePoint | {"language": "en"} | | nodeVariantSelectionStrategy | "allVariants" | Then the last command should have thrown an exception of type "NodeAggregateDoesCurrentlyNotCoverDimensionSpacePoint" diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/05-EnableNodeAggregate_WithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/05-EnableNodeAggregate_WithoutDimensions.feature index ce9d1d62d24..6412f130a09 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/05-EnableNodeAggregate_WithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/05-EnableNodeAggregate_WithoutDimensions.feature @@ -18,46 +18,46 @@ Feature: Enable a node aggregate And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | preceding-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | preceding-document | - | sir-david-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | - | succeeding-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | succeeding-document | - | nody-mc-nodeface | Neos.ContentRepository.Testing:Document | sir-david-nodenborough | child-document | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | preceding-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | preceding-document | + | sir-david-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | + | succeeding-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | succeeding-document | + | nody-mc-nodeface | Neos.ContentRepository.Testing:Document | sir-david-nodenborough | child-document | And the command SetNodeReferences is executed with payload: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "preceding-nodenborough" | - | referenceName | "references" | - | references | [{"target": "sir-david-nodenborough"}] | + | referenceName | "references" | + | references | [{"target": "sir-david-nodenborough"}] | Scenario: Enable a previously disabled node with arbitrary strategy since dimensions are not involved Given the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeVariantSelectionStrategy | "allVariants" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeVariantSelectionStrategy | "allVariants" | When the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | + | nodeAggregateId | "sir-david-nodenborough" | | nodeVariantSelectionStrategy | "allVariants" | Then I expect exactly 9 events to be published on stream with prefix "ContentStream:cs-identifier" And event at index 8 is of type "SubtreeWasUntagged" with payload: | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | | affectedDimensionSpacePoints | [[]] | - | tag | "disabled" | + | tag | "disabled" | And I am in workspace "live" Then I expect the graph projection to consist of exactly 5 nodes @@ -79,7 +79,7 @@ Feature: Enable a node aggregate | document | cs-identifier;sir-david-nodenborough;{} | | succeeding-document | cs-identifier;succeeding-nodenborough;{} | And the subtree for node aggregate "lady-eleonode-rootford" with node types "" and 2 levels deep should be: - | Level | nodeAggregateId | + | Level | nodeAggregateId | | 0 | lady-eleonode-rootford | | 1 | preceding-nodenborough | | 1 | sir-david-nodenborough | @@ -119,24 +119,24 @@ Feature: Enable a node aggregate Scenario: Enable a previously disabled node with explicitly disabled child nodes with arbitrary strategy since dimensions are not involved Given the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeVariantSelectionStrategy | "allVariants" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeVariantSelectionStrategy | "allVariants" | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeVariantSelectionStrategy | "allVariants" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeVariantSelectionStrategy | "allVariants" | When the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | + | nodeAggregateId | "sir-david-nodenborough" | | nodeVariantSelectionStrategy | "allVariants" | Then I expect exactly 10 events to be published on stream with prefix "ContentStream:cs-identifier" And event at index 9 is of type "SubtreeWasUntagged" with payload: | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | | affectedDimensionSpacePoints | [[]] | - | tag | "disabled" | + | tag | "disabled" | And I am in workspace "live" @@ -154,7 +154,7 @@ Feature: Enable a node aggregate | document | cs-identifier;sir-david-nodenborough;{} | | succeeding-document | cs-identifier;succeeding-nodenborough;{} | And the subtree for node aggregate "lady-eleonode-rootford" with node types "" and 2 levels deep should be: - | Level | nodeAggregateId | + | Level | nodeAggregateId | | 0 | lady-eleonode-rootford | | 1 | preceding-nodenborough | | 1 | sir-david-nodenborough | @@ -194,24 +194,24 @@ Feature: Enable a node aggregate Scenario: Enable a previously disabled node with explicitly disabled parent node with arbitrary strategy since dimensions are not involved Given the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeVariantSelectionStrategy | "allVariants" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeVariantSelectionStrategy | "allVariants" | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeVariantSelectionStrategy | "allVariants" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeVariantSelectionStrategy | "allVariants" | When the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | nodeAggregateId | "nody-mc-nodeface" | | nodeVariantSelectionStrategy | "allVariants" | Then I expect exactly 10 events to be published on stream with prefix "ContentStream:cs-identifier" And event at index 9 is of type "SubtreeWasUntagged" with payload: | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | | affectedDimensionSpacePoints | [[]] | - | tag | "disabled" | + | tag | "disabled" | And I am in workspace "live" @@ -228,7 +228,7 @@ Feature: Enable a node aggregate | preceding-document | cs-identifier;preceding-nodenborough;{} | | succeeding-document | cs-identifier;succeeding-nodenborough;{} | And the subtree for node aggregate "lady-eleonode-rootford" with node types "" and 2 levels deep should be: - | Level | nodeAggregateId | + | Level | nodeAggregateId | | 0 | lady-eleonode-rootford | | 1 | preceding-nodenborough | | 1 | succeeding-nodenborough | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/06-EnableNodeAggregate_WithDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/06-EnableNodeAggregate_WithDimensions.feature index 2d1ca596413..cd21fb18d63 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/06-EnableNodeAggregate_WithDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/06-EnableNodeAggregate_WithDimensions.feature @@ -369,7 +369,7 @@ Feature: Enable a node aggregate | contentStreamId | "cs-identifier" | | nodeAggregateId | "sir-david-nodenborough" | | affectedDimensionSpacePoints | [{"language":"mul"},{"language":"de"},{"language":"en"},{"language":"gsw"},{"language":"ltz"}] | - | tag | "disabled" | + | tag | "disabled" | And I am in workspace "live" Then I expect the graph projection to consist of exactly 7 nodes diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/07-CreateNodeAggregateWithNodeWithDisabledAncestor_WithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/07-CreateNodeAggregateWithNodeWithDisabledAncestor_WithoutDimensions.feature index 66eb640bf87..04039d13520 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/07-CreateNodeAggregateWithNodeWithDisabledAncestor_WithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/07-CreateNodeAggregateWithNodeWithDisabledAncestor_WithoutDimensions.feature @@ -16,35 +16,35 @@ Feature: Creation of nodes underneath disabled nodes And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | nodeVariantSelectionStrategy | "allVariants" | Scenario: When a new node is created underneath a hidden node, this one should be hidden as well When the following CreateNodeAggregateWithNode commands are executed: | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | nodingers-cat | Neos.ContentRepository.Testing:Document | the-great-nodini | pet-document | + | nodingers-cat | Neos.ContentRepository.Testing:Document | the-great-nodini | pet-document | Then I expect the node aggregate "nodingers-cat" to exist And I expect this node aggregate to disable dimension space points [] And I expect node aggregate identifier "nodingers-cat" and node path "document/pet-document" to lead to no node When the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | nodeVariantSelectionStrategy | "allVariants" | Then I expect node aggregate identifier "nodingers-cat" and node path "document/pet-document" to lead to node cs-identifier;nodingers-cat;{} And I expect this node to be a child of node cs-identifier;the-great-nodini;{} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/08-CreateNodeAggregateWithNodeWithDisabledAncestor_WithDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/08-CreateNodeAggregateWithNodeWithDisabledAncestor_WithDimensions.feature index 2b5d3ec4545..ff972b00216 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/08-CreateNodeAggregateWithNodeWithDisabledAncestor_WithDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/08-CreateNodeAggregateWithNodeWithDisabledAncestor_WithDimensions.feature @@ -18,36 +18,36 @@ Feature: Creation of nodes underneath disabled nodes And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"mul"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | # We need both a real and a virtual specialization to test the different selection strategies And the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"mul"} | - | targetOrigin | {"language":"ltz"} | + | sourceOrigin | {"language":"mul"} | + | targetOrigin | {"language":"ltz"} | And VisibilityConstraints are set to "frontend" Scenario: Create a new node with parent disabled with strategy allSpecializations Given the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "the-great-nodini" | - | coveredDimensionSpacePoint | {"language":"de"} | + | Key | Value | + | nodeAggregateId | "the-great-nodini" | + | coveredDimensionSpacePoint | {"language":"de"} | | nodeVariantSelectionStrategy | "allSpecializations" | When the following CreateNodeAggregateWithNode commands are executed: | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | nodingers-cat | Neos.ContentRepository.Testing:Document | the-great-nodini | pet-document | + | nodingers-cat | Neos.ContentRepository.Testing:Document | the-great-nodini | pet-document | Then I expect the node aggregate "nodingers-cat" to exist And I expect this node aggregate to disable dimension space points [] @@ -70,9 +70,9 @@ Feature: Creation of nodes underneath disabled nodes And I expect this node to be a child of node cs-identifier;the-great-nodini;{"language":"mul"} And the command EnableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "the-great-nodini" | - | coveredDimensionSpacePoint | {"language":"de"} | + | Key | Value | + | nodeAggregateId | "the-great-nodini" | + | coveredDimensionSpacePoint | {"language":"de"} | | nodeVariantSelectionStrategy | "allSpecializations" | When I am in dimension space point {"language":"de"} @@ -90,12 +90,12 @@ Feature: Creation of nodes underneath disabled nodes Scenario: Create a new node with parent disabled with strategy allVariants Given the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"de"} | - | nodeVariantSelectionStrategy | "allVariants" | + | nodeVariantSelectionStrategy | "allVariants" | When the following CreateNodeAggregateWithNode commands are executed: | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | nodingers-cat | Neos.ContentRepository.Testing:Document | the-great-nodini | pet-document | + | nodingers-cat | Neos.ContentRepository.Testing:Document | the-great-nodini | pet-document | Then I expect the node aggregate "nodingers-cat" to exist And I expect this node aggregate to disable dimension space points [] @@ -117,9 +117,9 @@ Feature: Creation of nodes underneath disabled nodes And the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"de"} | - | nodeVariantSelectionStrategy | "allVariants" | + | nodeVariantSelectionStrategy | "allVariants" | When I am in dimension space point {"language":"mul"} And I expect node aggregate identifier "nodingers-cat" and node path "document/pet-document" to lead to node cs-identifier;nodingers-cat;{"language":"mul"} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/09-CreateNodeVariantOfDisabledNode.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/09-CreateNodeVariantOfDisabledNode.feature index 274299d6173..aedb0fdbd1f 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/09-CreateNodeVariantOfDisabledNode.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/06-NodeDisabling/09-CreateNodeVariantOfDisabledNode.feature @@ -16,39 +16,39 @@ Feature: Variation of hidden nodes And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"mul"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And VisibilityConstraints are set to "frontend" Scenario: Specialize a node where the specialization target is enabled Given I am in dimension space point {"language":"de"} And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"de"} | | nodeVariantSelectionStrategy | "allSpecializations" | And the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"gsw"} | | nodeVariantSelectionStrategy | "allSpecializations" | When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"gsw"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"gsw"} | And I am in dimension space point {"language":"de"} And I expect node aggregate identifier "the-great-nodini" and node path "court-magician" to lead to no node @@ -58,19 +58,19 @@ Feature: Variation of hidden nodes Scenario: Specialize a node where the specialization target is disabled Given I am in dimension space point {"language":"de"} And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"de"} | | nodeVariantSelectionStrategy | "allSpecializations" | When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"gsw"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"gsw"} | When I am in dimension space point {"language":"de"} Then I expect node aggregate identifier "the-great-nodini" and node path "court-magician" to lead to no node @@ -80,7 +80,7 @@ Feature: Variation of hidden nodes When the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"gsw"} | | nodeVariantSelectionStrategy | "allSpecializations" | @@ -90,19 +90,19 @@ Feature: Variation of hidden nodes Scenario: Generalize a node where the generalization target is enabled Given I am in dimension space point {"language":"de"} And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"de"} | | nodeVariantSelectionStrategy | "allSpecializations" | When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"mul"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"mul"} | When I am in dimension space point {"language":"de"} Then I expect node aggregate identifier "the-great-nodini" and node path "court-magician" to lead to no node @@ -114,25 +114,25 @@ Feature: Variation of hidden nodes Scenario: Generalize a node where the generalization target is disabled Given I am in dimension space point {"language":"ltz"} And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | And the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"ltz"} | - | targetOrigin | {"language":"mul"} | + | sourceOrigin | {"language":"ltz"} | + | targetOrigin | {"language":"mul"} | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"mul"} | | nodeVariantSelectionStrategy | "allSpecializations" | When the command CreateNodeVariant is executed with payload: - | Key | Value | - | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"ltz"} | - | targetOrigin | {"language":"de"} | + | Key | Value | + | nodeAggregateId | "the-great-nodini" | + | sourceOrigin | {"language":"ltz"} | + | targetOrigin | {"language":"de"} | When I am in dimension space point {"language":"ltz"} Then I expect node aggregate identifier "the-great-nodini" and node path "court-magician" to lead to no node @@ -142,7 +142,7 @@ Feature: Variation of hidden nodes When the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"de"} | | nodeVariantSelectionStrategy | "allSpecializations" | @@ -152,19 +152,19 @@ Feature: Variation of hidden nodes Scenario: Peer vary a node where the peer target is enabled Given I am in dimension space point {"language":"de"} And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"de"} | | nodeVariantSelectionStrategy | "allSpecializations" | When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"en"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"en"} | When I am in dimension space point {"language":"de"} Then I expect node aggregate identifier "the-great-nodini" and node path "court-magician" to lead to no node @@ -175,24 +175,24 @@ Feature: Variation of hidden nodes Scenario: Peer vary a node where the peer target is disabled Given I am in dimension space point {"language":"de"} And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | the-great-nodini | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | court-magician | And the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"mul"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"mul"} | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"mul"} | | nodeVariantSelectionStrategy | "allSpecializations" | When the command CreateNodeVariant is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "the-great-nodini" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"en"} | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"en"} | When I am in dimension space point {"language":"de"} Then I expect node aggregate identifier "the-great-nodini" and node path "court-magician" to lead to no node @@ -202,7 +202,7 @@ Feature: Variation of hidden nodes When the command EnableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "the-great-nodini" | + | nodeAggregateId | "the-great-nodini" | | coveredDimensionSpacePoint | {"language":"en"} | | nodeVariantSelectionStrategy | "allSpecializations" | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/07-NodeRemoval/01-RemoveNodeAggregate_ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/07-NodeRemoval/01-RemoveNodeAggregate_ConstraintChecks.feature index 0a3e1800337..e8264e56a98 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/07-NodeRemoval/01-RemoveNodeAggregate_ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/07-NodeRemoval/01-RemoveNodeAggregate_ConstraintChecks.feature @@ -38,7 +38,7 @@ Feature: Remove NodeAggregate Scenario: Try to remove a node aggregate in a non-existing content stream When the command RemoveNodeAggregate is executed with payload and exceptions are caught: | Key | Value | - | workspaceName | "i-do-not-exist" | + | workspaceName | "i-do-not-exist" | | nodeAggregateId | "sir-david-nodenborough" | | coveredDimensionSpacePoint | {"language":"de"} | | nodeVariantSelectionStrategy | "allVariants" | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/07-NodeRemoval/05-CreateNodeAfterDeletion.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/07-NodeRemoval/05-CreateNodeAfterDeletion.feature index 08f1ae18ae4..cc7b1bca2cf 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/07-NodeRemoval/05-CreateNodeAfterDeletion.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/07-NodeRemoval/05-CreateNodeAfterDeletion.feature @@ -130,8 +130,8 @@ Feature: Create node specialization And I expect node aggregate identifier "nody-mc-nodeface" and node path "document" to lead to node cs-identifier;nody-mc-nodeface;{"example":"source"} And I expect this node to have the following child nodes: - | Name | NodeDiscriminator | - | tethered-node | cs-identifier;nodewyn-tetherton;{"example":"source"} | + | Name | NodeDiscriminator | + | tethered-node | cs-identifier;nodewyn-tetherton;{"example":"source"} | | invariable-document | cs-identifier;invariable-mc-nodeface;{"example":"source"} | And I expect this node to have the following preceding siblings: | NodeDiscriminator | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/01-MoveNodes_ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/01-MoveNodes_ConstraintChecks.feature index e0348f5036c..84910ed2c19 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/01-MoveNodes_ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/01-MoveNodes_ConstraintChecks.feature @@ -197,7 +197,7 @@ Feature: Move node to a new parent / within the current parent before a sibling type: 'Neos.ContentRepository.Testing:Content' """ And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | originDimensionSpacePoint | nodeTypeName | parentNodeAggregateId | nodeName | + | nodeAggregateId | originDimensionSpacePoint | nodeTypeName | parentNodeAggregateId | nodeName | | nody-mc-nodeface | {"example": "source"} | Neos.ContentRepository.Testing:Document | sir-nodeward-nodington-iii | another-tethered | When the command MoveNodeAggregate is executed with payload and exceptions are caught: diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/02-MoveNodeAggregate_NoNewParent_Dimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/02-MoveNodeAggregate_NoNewParent_Dimensions.feature index 18780d6d0ff..e0e5dd561a4 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/02-MoveNodeAggregate_NoNewParent_Dimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/02-MoveNodeAggregate_NoNewParent_Dimensions.feature @@ -922,10 +922,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "eldest-mc-nodeface"},{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId": "elder-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -990,10 +990,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "elder-mc-nodeface"},{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId": "elder-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1053,10 +1053,10 @@ Feature: Move a node with content dimensions Then I expect exactly 9 events to be published on stream "ContentStream:cs-identifier" And event at index 8 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "elder-mc-nodeface"},{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId": "elder-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1194,10 +1194,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "youngest-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1229,9 +1229,9 @@ Feature: Move a node with content dimensions And I expect this node to be a child of node cs-identifier;sir-david-nodenborough;{"example": "general"} And I expect this node to have the following preceding siblings: # The given succeeding sibling cannot be resolved and since elder-mc-nodeface isn't given as a preceding sibling, nothing is done - | NodeDiscriminator | - | cs-identifier;elder-mc-nodeface;{"example": "general"} | - | cs-identifier;eldest-mc-nodeface;{"example": "general"} | + | NodeDiscriminator | + | cs-identifier;elder-mc-nodeface;{"example": "general"} | + | cs-identifier;eldest-mc-nodeface;{"example": "general"} | And I expect this node to have the following succeeding siblings: | NodeDiscriminator | | cs-identifier;younger-mc-nodeface;{"example": "general"} | @@ -1259,10 +1259,10 @@ Feature: Move a node with content dimensions Then I expect exactly 9 events to be published on stream "ContentStream:cs-identifier" And event at index 8 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": null},{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId": null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1328,10 +1328,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": null},{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId": null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1396,10 +1396,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "youngest-mc-nodeface"},{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId": null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1459,10 +1459,10 @@ Feature: Move a node with content dimensions Then I expect exactly 9 events to be published on stream "ContentStream:cs-identifier" And event at index 8 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "youngest-mc-nodeface"},{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId": "youngest-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1530,10 +1530,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "youngest-mc-nodeface"},{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId": "youngest-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1600,10 +1600,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "elder-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1635,11 +1635,11 @@ Feature: Move a node with content dimensions And I expect this node to be a child of node cs-identifier;sir-david-nodenborough;{"example": "general"} And I expect this node to have the following preceding siblings: # The given preceding sibling cannot be resolved and since elder-mc-nodeface isn't given as a succeeding sibling, nothing is done - | NodeDiscriminator | - | cs-identifier;elder-mc-nodeface;{"example": "general"} | + | NodeDiscriminator | + | cs-identifier;elder-mc-nodeface;{"example": "general"} | And I expect this node to have the following succeeding siblings: | NodeDiscriminator | - | cs-identifier;younger-mc-nodeface;{"example": "general"} | + | cs-identifier;younger-mc-nodeface;{"example": "general"} | | cs-identifier;youngest-mc-nodeface;{"example": "general"} | When I am in workspace "live" and dimension space point {"example": "peer"} @@ -1667,10 +1667,10 @@ Feature: Move a node with content dimensions Then I expect exactly 9 events to be published on stream "ContentStream:cs-identifier" And event at index 8 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "eldest-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1739,10 +1739,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "elder-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1801,10 +1801,10 @@ Feature: Move a node with content dimensions Then I expect exactly 9 events to be published on stream "ContentStream:cs-identifier" And event at index 8 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "elder-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1874,10 +1874,10 @@ Feature: Move a node with content dimensions Then I expect exactly 9 events to be published on stream "ContentStream:cs-identifier" And event at index 8 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1944,10 +1944,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -2012,10 +2012,10 @@ Feature: Move a node with content dimensions Then I expect exactly 10 events to be published on stream "ContentStream:cs-identifier" And event at index 9 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -2074,10 +2074,10 @@ Feature: Move a node with content dimensions Then I expect exactly 9 events to be published on stream "ContentStream:cs-identifier" And event at index 8 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | null | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | null | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId": "youngest-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/03-MoveNodeAggregate_NewParent_Dimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/03-MoveNodeAggregate_NewParent_Dimensions.feature index 0842da1a6cb..adc0d543733 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/03-MoveNodeAggregate_NewParent_Dimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/03-MoveNodeAggregate_NewParent_Dimensions.feature @@ -1619,10 +1619,10 @@ Feature: Move a node with content dimensions Then I expect exactly 13 events to be published on stream "ContentStream:cs-identifier" And event at index 12 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | "sir-david-nodenborough" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | "sir-david-nodenborough" | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId":"eldest-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1680,17 +1680,17 @@ Feature: Move a node with content dimensions When the command MoveNodeAggregate is executed with payload: | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | dimensionSpacePoint | {"example": "spec"} | + | dimensionSpacePoint | {"example": "spec"} | | newParentNodeAggregateId | "sir-david-nodenborough" | | newSucceedingSiblingNodeAggregateId | "elder-mc-nodeface" | | relationDistributionStrategy | "scatter" | Then I expect exactly 14 events to be published on stream "ContentStream:cs-identifier" And event at index 13 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | "sir-david-nodenborough" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | "sir-david-nodenborough" | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId":"elder-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1737,17 +1737,17 @@ Feature: Move a node with content dimensions When the command MoveNodeAggregate is executed with payload: | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | dimensionSpacePoint | {"example": "source"} | + | dimensionSpacePoint | {"example": "source"} | | newParentNodeAggregateId | "sir-david-nodenborough" | | newSucceedingSiblingNodeAggregateId | "elder-mc-nodeface" | | relationDistributionStrategy | "scatter" | Then I expect exactly 13 events to be published on stream "ContentStream:cs-identifier" And event at index 12 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | "sir-david-nodenborough" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | "sir-david-nodenborough" | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId":"elder-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1811,10 +1811,10 @@ Feature: Move a node with content dimensions Then I expect exactly 13 events to be published on stream "ContentStream:cs-identifier" And event at index 12 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | "sir-david-nodenborough" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | "sir-david-nodenborough" | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"source"},"nodeAggregateId":null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1868,17 +1868,17 @@ Feature: Move a node with content dimensions When the command MoveNodeAggregate is executed with payload: | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | dimensionSpacePoint | {"example": "spec"} | + | dimensionSpacePoint | {"example": "spec"} | | newParentNodeAggregateId | "sir-david-nodenborough" | | newSucceedingSiblingNodeAggregateId | null | | relationDistributionStrategy | "scatter" | Then I expect exactly 14 events to be published on stream "ContentStream:cs-identifier" And event at index 13 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | "sir-david-nodenborough" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | "sir-david-nodenborough" | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId":null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1905,10 +1905,10 @@ Feature: Move a node with content dimensions Then I expect node aggregate identifier "nody-mc-nodeface" and node path "parent-document/document" to lead to node cs-identifier;nody-mc-nodeface;{"example": "general"} And I expect this node to be a child of node cs-identifier;sir-david-nodenborough;{"example": "general"} And I expect this node to have the following preceding siblings: - | NodeDiscriminator | - | cs-identifier;younger-mc-nodeface;{"example": "general"} | - | cs-identifier;elder-mc-nodeface;{"example": "general"} | - | cs-identifier;eldest-mc-nodeface;{"example": "general"} | + | NodeDiscriminator | + | cs-identifier;younger-mc-nodeface;{"example": "general"} | + | cs-identifier;elder-mc-nodeface;{"example": "general"} | + | cs-identifier;eldest-mc-nodeface;{"example": "general"} | And I expect this node to have no succeeding siblings When I am in workspace "live" and dimension space point {"example": "peer"} @@ -1931,17 +1931,17 @@ Feature: Move a node with content dimensions When the command MoveNodeAggregate is executed with payload: | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | dimensionSpacePoint | {"example": "spec"} | + | dimensionSpacePoint | {"example": "spec"} | | newParentNodeAggregateId | "sir-david-nodenborough" | | newPrecedingSiblingNodeAggregateId | "younger-mc-nodeface" | | relationDistributionStrategy | "scatter" | Then I expect exactly 14 events to be published on stream "ContentStream:cs-identifier" And event at index 13 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | "sir-david-nodenborough" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | "sir-david-nodenborough" | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId":null}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -1988,17 +1988,17 @@ Feature: Move a node with content dimensions When the command MoveNodeAggregate is executed with payload: | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | dimensionSpacePoint | {"example": "spec"} | + | dimensionSpacePoint | {"example": "spec"} | | newParentNodeAggregateId | "sir-david-nodenborough" | | newPrecedingSiblingNodeAggregateId | "younger-mc-nodeface" | | relationDistributionStrategy | "scatter" | Then I expect exactly 13 events to be published on stream "ContentStream:cs-identifier" And event at index 12 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | newParentNodeAggregateId | "sir-david-nodenborough" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | newParentNodeAggregateId | "sir-david-nodenborough" | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"spec"},"nodeAggregateId":"youngest-mc-nodeface"}] | When I am in workspace "live" and dimension space point {"example": "general"} @@ -2068,10 +2068,10 @@ Feature: Move a node with content dimensions Then I expect exactly 14 events to be published on stream "ContentStream:cs-identifier" And event at index 13 is of type "NodeAggregateWasMoved" with payload: - | Key | Expected | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface-ii" | - | newParentNodeAggregateId | "lady-eleonode-rootford" | + | Key | Expected | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface-ii" | + | newParentNodeAggregateId | "lady-eleonode-rootford" | | succeedingSiblingsForCoverage | [{"dimensionSpacePoint":{"example":"general"},"nodeAggregateId":null}] | When I am in workspace "live" and dimension space point {"example": "general"} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/05-MoveNodeAggregate_SubtreeTags.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/05-MoveNodeAggregate_SubtreeTags.feature index 2777bbb9715..280f21d8fb0 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/05-MoveNodeAggregate_SubtreeTags.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/08-NodeMove/05-MoveNodeAggregate_SubtreeTags.feature @@ -1739,11 +1739,11 @@ Feature: Move a node aggregate into and out of a tagged parent Scenario: Move a partially tagged node to a new parent that tags the same Given the command TagSubtree is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"example": "spec"} | - | nodeVariantSelectionStrategy | "allSpecializations" | - | tag | "tag1" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"example": "spec"} | + | nodeVariantSelectionStrategy | "allSpecializations" | + | tag | "tag1" | And the command TagSubtree is executed with payload: | Key | Value | @@ -1806,11 +1806,11 @@ Feature: Move a node aggregate into and out of a tagged parent Scenario: Move a partially tagged node to a new parent that tags the same, partially Given the command TagSubtree is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"example": "spec"} | - | nodeVariantSelectionStrategy | "allSpecializations" | - | tag | "tag1" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"example": "spec"} | + | nodeVariantSelectionStrategy | "allSpecializations" | + | tag | "tag1" | And the command TagSubtree is executed with payload: | Key | Value | @@ -1873,11 +1873,11 @@ Feature: Move a node aggregate into and out of a tagged parent Scenario: Move a tagged node to a new parent that tags differently Given the command TagSubtree is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"example": "source"} | - | nodeVariantSelectionStrategy | "allSpecializations" | - | tag | "tag1" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"example": "source"} | + | nodeVariantSelectionStrategy | "allSpecializations" | + | tag | "tag1" | And the command TagSubtree is executed with payload: | Key | Value | @@ -1940,11 +1940,11 @@ Feature: Move a node aggregate into and out of a tagged parent Scenario: Move a tagged node to a new parent that tags differently, partially Given the command TagSubtree is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"example": "source"} | - | nodeVariantSelectionStrategy | "allSpecializations" | - | tag | "tag1" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"example": "source"} | + | nodeVariantSelectionStrategy | "allSpecializations" | + | tag | "tag1" | And the command TagSubtree is executed with payload: | Key | Value | @@ -2007,11 +2007,11 @@ Feature: Move a node aggregate into and out of a tagged parent Scenario: Move a partially tagged node to a new parent that tags differently Given the command TagSubtree is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"example": "spec"} | - | nodeVariantSelectionStrategy | "allSpecializations" | - | tag | "tag1" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"example": "spec"} | + | nodeVariantSelectionStrategy | "allSpecializations" | + | tag | "tag1" | And the command TagSubtree is executed with payload: | Key | Value | @@ -2074,11 +2074,11 @@ Feature: Move a node aggregate into and out of a tagged parent Scenario: Move a partially tagged node to a new parent that tags differently, partially Given the command TagSubtree is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {"example": "spec"} | - | nodeVariantSelectionStrategy | "allSpecializations" | - | tag | "tag1" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {"example": "spec"} | + | nodeVariantSelectionStrategy | "allSpecializations" | + | tag | "tag1" | And the command TagSubtree is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/09-NodeRenaming/02-ChangeNodeAggregateName.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/09-NodeRenaming/02-ChangeNodeAggregateName.feature index 1392078b609..b2b685de05b 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/09-NodeRenaming/02-ChangeNodeAggregateName.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/09-NodeRenaming/02-ChangeNodeAggregateName.feature @@ -41,10 +41,10 @@ Feature: Change node aggregate name | targetOrigin | {"example":"general"} | # leave spec as a virtual variant And the command CreateNodeVariant is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | sourceOrigin | {"example":"source"} | - | targetOrigin | {"example":"peer"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | sourceOrigin | {"example":"source"} | + | targetOrigin | {"example":"peer"} | Scenario: Rename a child node aggregate with descendants When the command ChangeNodeAggregateName is executed with payload: @@ -86,11 +86,11 @@ Feature: Change node aggregate name Scenario: Rename a scattered node aggregate Given the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | dimensionSpacePoint | {"example": "peer"} | - | newParentNodeAggregateId | "lady-eleonode-rootford" | - | relationDistributionStrategy | "scatter" | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | dimensionSpacePoint | {"example": "peer"} | + | newParentNodeAggregateId | "lady-eleonode-rootford" | + | relationDistributionStrategy | "scatter" | When the command ChangeNodeAggregateName is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/01-ForkContentStream_ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/01-ForkContentStream_ConstraintChecks.feature index ec9d1f328b5..8e1d7e8a71d 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/01-ForkContentStream_ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/01-ForkContentStream_ConstraintChecks.feature @@ -25,9 +25,9 @@ Feature: ForkContentStream Without Dimensions | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: | Key | Value | | workspaceName | "live" | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/ForkContentStreamWithDisabledNodesWithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/ForkContentStreamWithDisabledNodesWithoutDimensions.feature index 7c1a3d39bfb..e3dd0b80089 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/ForkContentStreamWithDisabledNodesWithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/ForkContentStreamWithDisabledNodesWithoutDimensions.feature @@ -24,9 +24,9 @@ Feature: On forking a content stream, hidden nodes should be correctly copied as | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: | Key | Value | | workspaceName | "live" | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/ForkContentStreamWithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/ForkContentStreamWithoutDimensions.feature index e11b4101278..ab8748cb07d 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/ForkContentStreamWithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/ForkContentStreamWithoutDimensions.feature @@ -25,9 +25,9 @@ Feature: ForkContentStream Without Dimensions | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: | Key | Value | | workspaceName | "live" | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/NodeReferencesOnForkContentStream.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/NodeReferencesOnForkContentStream.feature index 6ffb85265d2..9df23e60042 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/NodeReferencesOnForkContentStream.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ContentStreamForking/NodeReferencesOnForkContentStream.feature @@ -23,30 +23,30 @@ Feature: On forking a content stream, node references should be copied as well. And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | - | source-nodandaise | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | - | anthony-destinode | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | + | source-nodandaise | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | + | anthony-destinode | Neos.ContentRepository.Testing:NodeWithReferences | lady-eleonode-rootford | Scenario: Create a reference, trigger copy-on-write of the nodes, and ensure reference still exists. Given the command SetNodeReferences is executed with payload: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "source-nodandaise" | - | referenceName | "referenceProperty" | - | references | [{"target": "anthony-destinode"}] | + | referenceName | "referenceProperty" | + | references | [{"target": "anthony-destinode"}] | When the command ForkContentStream is executed with payload: - | Key | Value | + | Key | Value | | contentStreamId | "user-cs-identifier" | | sourceContentStreamId | "cs-identifier" | @@ -75,9 +75,9 @@ Feature: On forking a content stream, node references should be copied as well. # should still exist (this was a BUG) When I am in content stream "user-cs-identifier" and dimension space point {"language": "de"} And the command SetNodeProperties is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "source-nodandaise" | - | propertyValues | {"text": "Modified in live workspace"} | + | propertyValues | {"text": "Modified in live workspace"} | Then I expect node aggregate identifier "source-nodandaise" to lead to node user-cs-identifier;source-nodandaise;{"language": "de"} And I expect this node to have the following references: | Name | Node | Properties | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/AddDimensionShineThrough.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/AddDimensionShineThrough.feature index d7ed5d65569..bdc114cdf7f 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/AddDimensionShineThrough.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/AddDimensionShineThrough.feature @@ -39,9 +39,9 @@ Feature: Add Dimension Specialization | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/AddNewProperty_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/AddNewProperty_NoDimensions.feature index c5361ee7bc0..e422d531bb4 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/AddNewProperty_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/AddNewProperty_NoDimensions.feature @@ -24,9 +24,9 @@ Feature: Add New Property | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/ChangePropertyValue_Dimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/ChangePropertyValue_Dimensions.feature index a009cfa968b..b5973a86dd2 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/ChangePropertyValue_Dimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/ChangePropertyValue_Dimensions.feature @@ -30,9 +30,9 @@ Feature: Change Property Value across dimensions; and test DimensionSpacePoints | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document (in "de") When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/ChangePropertyValue_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/ChangePropertyValue_NoDimensions.feature index 08c374daab9..012cc9e2d2c 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/ChangePropertyValue_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/ChangePropertyValue_NoDimensions.feature @@ -25,9 +25,9 @@ Feature: Change Property | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_NodeName_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_NodeName_NoDimensions.feature index 654eba4f256..58ac70de9c5 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_NodeName_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_NodeName_NoDimensions.feature @@ -25,9 +25,9 @@ Feature: Filter - Node Name | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /name1 When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_PropertyNotEmpty_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_PropertyNotEmpty_NoDimensions.feature index 95621b6b91a..2f1824103b4 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_PropertyNotEmpty_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_PropertyNotEmpty_NoDimensions.feature @@ -25,9 +25,9 @@ Feature: Filter - Property not empty | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /name1 (has text value set) When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_PropertyValue_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_PropertyValue_NoDimensions.feature index 40b4d09932f..feba97e5a75 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_PropertyValue_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/Filter_PropertyValue_NoDimensions.feature @@ -25,9 +25,9 @@ Feature: Filter - Property Value | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /name1 (has text value set) When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/NodeTypeAdjustment_Dimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/NodeTypeAdjustment_Dimensions.feature index 6d8f63210f3..b1420081678 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/NodeTypeAdjustment_Dimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/NodeTypeAdjustment_Dimensions.feature @@ -24,23 +24,23 @@ Feature: Adjust node types with a node migration # SETUP ######################## When the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language": "de"} | - | parentNodeAggregateId | "lady-eleonode-rootford" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language": "de"} | + | parentNodeAggregateId | "lady-eleonode-rootford" | ######################## # Actual Test diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/NodeTypeAdjustment_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/NodeTypeAdjustment_NoDimensions.feature index 1fa0ea4f0ad..5cebe74064f 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/NodeTypeAdjustment_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/NodeTypeAdjustment_NoDimensions.feature @@ -29,9 +29,9 @@ Feature: Adjust node types with a node migration | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RemoveNodes_Dimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RemoveNodes_Dimensions.feature index f8d459e6aa9..be8af991d95 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RemoveNodes_Dimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RemoveNodes_Dimensions.feature @@ -28,9 +28,9 @@ Feature: Remove Nodes | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document (in "de") When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RemoveProperty_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RemoveProperty_NoDimensions.feature index 7002f446662..1ff8d98f545 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RemoveProperty_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RemoveProperty_NoDimensions.feature @@ -25,9 +25,9 @@ Feature: Remove Property | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNode is executed with payload: | Key | Value | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RenameNodeAggregate_Dimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RenameNodeAggregate_Dimensions.feature index 5e59e1d3121..8c62f0f72fd 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RenameNodeAggregate_Dimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RenameNodeAggregate_Dimensions.feature @@ -21,32 +21,32 @@ Feature: Rename Node Aggregate And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document (in "de") When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | nodeName | "foo" | - | originDimensionSpacePoint | {"language": "de"} | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | initialPropertyValues | {"text": "Original text"} | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | nodeName | "foo" | + | originDimensionSpacePoint | {"language": "de"} | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | initialPropertyValues | {"text": "Original text"} | # Node /document (in "en") When the command CreateNodeVariant is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"en"} | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"en"} | Scenario: Rename Node Aggregate diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RenameProperty_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RenameProperty_NoDimensions.feature index 02ed7f28624..cf4fc540c69 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RenameProperty_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/RenameProperty_NoDimensions.feature @@ -18,24 +18,24 @@ Feature: Rename Property And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | initialPropertyValues | {"text": "Original text"} | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | initialPropertyValues | {"text": "Original text"} | Scenario: Fixed newValue diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/StripTagsOnProperty_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/StripTagsOnProperty_NoDimensions.feature index 71dbee453bb..19586ae45ce 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/StripTagsOnProperty_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/EventSourced/Migration/StripTagsOnProperty_NoDimensions.feature @@ -18,24 +18,24 @@ Feature: Strip Tags on Property And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | initialPropertyValues | {"text": "Original

text

"} | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | initialPropertyValues | {"text": "Original

text

"} | Scenario: Fixed newValue diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeCopying/CopyNode_NoDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeCopying/CopyNode_NoDimensions.feature index 26d8c20c84b..7cd82f605ef 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeCopying/CopyNode_NoDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeCopying/CopyNode_NoDimensions.feature @@ -10,59 +10,59 @@ Feature: Copy nodes (without dimensions) And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "sir-david-nodenborough" | - | nodeName | "child-document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "sir-david-nodenborough" | + | nodeName | "child-document" | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-nodeward-nodington-iii" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "esquire" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-nodeward-nodington-iii" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "esquire" | + | nodeAggregateClassification | "regular" | Scenario: Copy When I am in workspace "live" and dimension space point {} # node to copy (currentNode): "sir-nodeward-nodington-iii" Then I expect node aggregate identifier "sir-nodeward-nodington-iii" to lead to node cs-identifier;sir-nodeward-nodington-iii;{} When the command CopyNodesRecursively is executed, copying the current node aggregate with payload: - | Key | Value | - | targetDimensionSpacePoint | {} | + | Key | Value | + | targetDimensionSpacePoint | {} | | targetParentNodeAggregateId | "nody-mc-nodeface" | - | targetNodeName | "target-nn" | + | targetNodeName | "target-nn" | | targetSucceedingSiblingnodeAggregateId | null | | nodeAggregateIdMapping | {"sir-nodeward-nodington-iii": "sir-nodeward-nodington-iii-copy"} | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodePropertyConversion/NodePropertyConversion.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodePropertyConversion/NodePropertyConversion.feature index cef36651b3e..479d3b45fee 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodePropertyConversion/NodePropertyConversion.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodePropertyConversion/NodePropertyConversion.feature @@ -13,23 +13,23 @@ Feature: Node Property Conversion And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | + | Key | Value | + | workspaceName | "live" | | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: DateTime objects at Node Creation When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | initialPropertyValues | {"dateProperty": "Date:1997-07-16T19:20:30+05:00"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | initialPropertyValues | {"dateProperty": "Date:1997-07-16T19:20:30+05:00"} | When I am in workspace "live" and dimension space point {} @@ -40,16 +40,16 @@ Feature: Node Property Conversion Scenario: DateTime objects at Node Property Updating When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | initialPropertyValues | {"dateProperty": "Date:1997-07-16T19:20:30+05:00"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | initialPropertyValues | {"dateProperty": "Date:1997-07-16T19:20:30+05:00"} | When the command SetNodeProperties is executed with payload: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | nodeAggregateId | "nody-mc-nodeface" | | originDimensionSpacePoint | {} | | propertyValues | {"dateProperty": "Date:1997-07-19T19:20:30+05:00"} | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeRemoval/RemoveNodeAggregateAfterDisabling.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeRemoval/RemoveNodeAggregateAfterDisabling.feature index 93755f119ad..8c893ec00db 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeRemoval/RemoveNodeAggregateAfterDisabling.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeRemoval/RemoveNodeAggregateAfterDisabling.feature @@ -18,48 +18,48 @@ Feature: Disable a node aggregate And I am in content repository "default" And I am user identified by "initiating-user-identifier" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | - | preceding-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | preceding-document | - | sir-david-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | - | succeeding-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | succeeding-document | - | nody-mc-nodeface | Neos.ContentRepository.Testing:Document | sir-david-nodenborough | child-document | + | nodeAggregateId | nodeTypeName | parentNodeAggregateId | nodeName | + | preceding-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | preceding-document | + | sir-david-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | document | + | succeeding-nodenborough | Neos.ContentRepository.Testing:Document | lady-eleonode-rootford | succeeding-document | + | nody-mc-nodeface | Neos.ContentRepository.Testing:Document | sir-david-nodenborough | child-document | And the command SetNodeReferences is executed with payload: - | Key | Value | + | Key | Value | | sourceNodeAggregateId | "preceding-nodenborough" | - | referenceName | "references" | - | references | [{"target": "sir-david-nodenborough"}] | + | referenceName | "references" | + | references | [{"target": "sir-david-nodenborough"}] | Scenario: Restore a hidden node by removing and recreating it Given the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | nodeAggregateId | "nody-mc-nodeface" | | nodeVariantSelectionStrategy | "allVariants" | And the event NodeAggregateWasRemoved was published with payload: | Key | Value | | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | | affectedOccupiedDimensionSpacePoints | [{}] | | affectedCoveredDimensionSpacePoints | [{}] | When the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "sir-david-nodenborough" | - | nodeName | "child-document" | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "sir-david-nodenborough" | + | nodeName | "child-document" | And I am in workspace "live" Then I expect the graph projection to consist of exactly 5 nodes @@ -75,7 +75,7 @@ Feature: Disable a node aggregate When I am in workspace "live" and dimension space point {} And VisibilityConstraints are set to "frontend" Then the subtree for node aggregate "lady-eleonode-rootford" with node types "" and 2 levels deep should be: - | Level | nodeAggregateId | + | Level | nodeAggregateId | | 0 | lady-eleonode-rootford | | 1 | preceding-nodenborough | | 1 | sir-david-nodenborough | @@ -83,8 +83,8 @@ Feature: Disable a node aggregate | 1 | succeeding-nodenborough | And I expect node aggregate identifier "sir-david-nodenborough" and node path "document" to lead to node cs-identifier;sir-david-nodenborough;{} And the subtree for node aggregate "sir-david-nodenborough" with node types "" and 1 levels deep should be: - | Level | nodeAggregateId | - | 0 | sir-david-nodenborough | - | 1 | nody-mc-nodeface | + | Level | nodeAggregateId | + | 0 | sir-david-nodenborough | + | 1 | nody-mc-nodeface | And I expect node aggregate identifier "nody-mc-nodeface" and node path "document/child-document" to lead to node cs-identifier;nody-mc-nodeface;{} And I expect this node to be a child of node cs-identifier;sir-david-nodenborough;{} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeRemoval/RemoveNodeAggregateWithDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeRemoval/RemoveNodeAggregateWithDimensions.feature index d1d60d3091c..76931d4c964 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeRemoval/RemoveNodeAggregateWithDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeRemoval/RemoveNodeAggregateWithDimensions.feature @@ -14,47 +14,47 @@ Feature: Remove NodeAggregate And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "live-cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "live-cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-nodesworth" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-nodesworth" | + | nodeTypeName | "Neos.ContentRepository:Root" | # We have to add another node since root nodes are in all dimension space points and thus cannot be varied # Node /document And the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | | parentNodeAggregateId | "lady-eleonode-nodesworth" | - | nodeName | "document" | + | nodeName | "document" | # We also want to add a child node to make sure it is correctly removed when the parent is removed # Node /document/child-document And the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "nodimus-prime" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | | parentNodeAggregateId | "nody-mc-nodeface" | - | nodeName | "child-document" | + | nodeName | "child-document" | And the command CreateNodeVariant is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | sourceOrigin | {"language":"de"} | - | targetOrigin | {"language":"gsw"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | sourceOrigin | {"language":"de"} | + | targetOrigin | {"language":"gsw"} | ######################## # Section: EXTRA testcases ######################## Scenario: In LIVE workspace, removing a NodeAggregate removes all nodes completely When the command RemoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeVariantSelectionStrategy | "allVariants" | - | coveredDimensionSpacePoint | {"language":"de"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeVariantSelectionStrategy | "allVariants" | + | coveredDimensionSpacePoint | {"language":"de"} | Then I expect the graph projection to consist of exactly 1 node And I expect a node identified by live-cs-identifier;lady-eleonode-nodesworth;{} to exist in the content graph @@ -78,10 +78,10 @@ Feature: Remove NodeAggregate And I am in workspace "user-test" When the command RemoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeVariantSelectionStrategy | "allVariants" | - | coveredDimensionSpacePoint | {"language":"de"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeVariantSelectionStrategy | "allVariants" | + | coveredDimensionSpacePoint | {"language":"de"} | Then I expect the graph projection to consist of exactly 4 nodes And I expect a node identified by live-cs-identifier;lady-eleonode-nodesworth;{} to exist in the content graph diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/AncestorNodes.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/AncestorNodes.feature index ab540e0950a..3855686d40e 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/AncestorNodes.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/AncestorNodes.feature @@ -67,7 +67,7 @@ Feature: Find and count nodes using the findAncestorNodes and countAncestorNodes | a2a2a | a2a2a | Neos.ContentRepository.Testing:Page | a2a2 | {} | {} | | a2a2b | a2a2b | Neos.ContentRepository.Testing:Page | a2a2 | {} | {} | | a2b | a2b | Neos.ContentRepository.Testing:Page | a2 | {} | {} | - | a2b1 | a2b1 | Neos.ContentRepository.Testing:Page | a2b | {} | {} | + | a2b1 | a2b1 | Neos.ContentRepository.Testing:Page | a2b | {} | {} | | b | b | Neos.ContentRepository.Testing:Page | home | {} | {} | And the command DisableNodeAggregate is executed with payload: | Key | Value | @@ -75,7 +75,7 @@ Feature: Find and count nodes using the findAncestorNodes and countAncestorNodes | nodeVariantSelectionStrategy | "allVariants" | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "a2b" | + | nodeAggregateId | "a2b" | | nodeVariantSelectionStrategy | "allVariants" | Scenario: diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/ClosestNode.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/ClosestNode.feature index 733fe8e5505..323405dcfb7 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/ClosestNode.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/ClosestNode.feature @@ -67,7 +67,7 @@ Feature: Find nodes using the findClosestNode query | a2a2a | a2a2a | Neos.ContentRepository.Testing:Page | a2a2 | {} | {} | | a2a2b | a2a2b | Neos.ContentRepository.Testing:Page | a2a2 | {} | {} | | a2b | a2b | Neos.ContentRepository.Testing:Page | a2 | {} | {} | - | a2b1 | a2b1 | Neos.ContentRepository.Testing:Page | a2b | {} | {} | + | a2b1 | a2b1 | Neos.ContentRepository.Testing:Page | a2b | {} | {} | | b | b | Neos.ContentRepository.Testing:Page | home | {} | {} | And the command DisableNodeAggregate is executed with payload: | Key | Value | @@ -75,7 +75,7 @@ Feature: Find nodes using the findClosestNode query | nodeVariantSelectionStrategy | "allVariants" | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "a2b" | + | nodeAggregateId | "a2b" | | nodeVariantSelectionStrategy | "allVariants" | Scenario: diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/CountNodes.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/CountNodes.feature index e035f81355e..bba04105ad0 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/CountNodes.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/CountNodes.feature @@ -76,7 +76,7 @@ Feature: Find nodes using the countNodes query # count all nodes with disabled nodes When the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "a2a1" | + | nodeAggregateId | "a2a1" | | nodeVariantSelectionStrategy | "allVariants" | # NOTE: countNodes() counts _all_ nodes, even disabled ones And I execute the countNodes query I expect the result to be 12 diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/FindNodeById.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/FindNodeById.feature index e347b748f8e..6effcac846d 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/FindNodeById.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/FindNodeById.feature @@ -80,9 +80,9 @@ Feature: Find nodes using the findNodeById query | b | b | Neos.ContentRepository.Testing:Page | home | {"text": "b"} | {} | | b1 | b1 | Neos.ContentRepository.Testing:Page | b | {"text": "b1"} | {} | And the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "a2a1" | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "a2a1" | + | nodeVariantSelectionStrategy | "allVariants" | Scenario: # findNodeById queries without result diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/FindSubtree.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/FindSubtree.feature index b025d92398c..e803cffdf06 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/FindSubtree.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/FindSubtree.feature @@ -72,7 +72,7 @@ Feature: Find nodes using the findSubtree query | b1 | b1 | Neos.ContentRepository.Testing:Page | b | {"text": "b1"} | {} | And the command DisableNodeAggregate is executed with payload: | Key | Value | - | nodeAggregateId | "a2a2a" | + | nodeAggregateId | "a2a2a" | | nodeVariantSelectionStrategy | "allVariants" | Scenario: diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/Timestamps.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/Timestamps.feature index 87c484a5c00..31e6ae5a064 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/Timestamps.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/NodeTraversal/Timestamps.feature @@ -132,7 +132,7 @@ Feature: Behavior of Node timestamp properties "created", "originalCreated", "la | Key | Value | | workspaceName | "user-test" | And the command PublishWorkspace is executed with payload: - | Key | Value | + | Key | Value | | workspaceName | "review" | And the current date and time is "2023-03-16T14:00:00+01:00" And the command "ChangeNodeAggregateName" is executed with payload: diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/AllNodesCoverTheirOrigin.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/AllNodesCoverTheirOrigin.feature index 994c1eb3ed8..685543a34fd 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/AllNodesCoverTheirOrigin.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/AllNodesCoverTheirOrigin.feature @@ -14,40 +14,40 @@ Feature: Run projection integrity violation detection to find nodes that do not And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: Create a node not covering its origin When the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"de"} | - | coveredDimensionSpacePoints | [{"language":"de"},{"language":"gsw"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"de"} | + | coveredDimensionSpacePoints | [{"language":"de"},{"language":"gsw"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | When the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"de"} | - | coveredDimensionSpacePoints | [{"language":"gsw"}] | - | parentNodeAggregateId | "sir-david-nodenborough" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"de"} | + | coveredDimensionSpacePoints | [{"language":"gsw"}] | + | parentNodeAggregateId | "sir-david-nodenborough" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | And I run integrity violation detection Then I expect the integrity violation detection result to contain exactly 1 errors And I expect integrity violation detection result error number 1 to have code 1597828607 diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/IntactContentGraph.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/IntactContentGraph.feature index 7a479d0ac9d..f8a79df5f17 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/IntactContentGraph.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/IntactContentGraph.feature @@ -14,61 +14,61 @@ Feature: Create an intact content graph and run integrity violation detection And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | Scenario: Create an intact content graph When the event RootNodeAggregateWithNodeWasCreated was published with payload: | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "lady-eleonode-rootford" | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "lady-eleonode-rootford" | | nodeTypeName | "Neos.ContentRepository:Root" | | coveredDimensionSpacePoints | [{"language":"de"},{"language":"gsw"}] | | nodeAggregateClassification | "root" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"de"} | - | coveredDimensionSpacePoints | [{"language":"de"},{"language":"gsw"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"de"} | + | coveredDimensionSpacePoints | [{"language":"de"},{"language":"gsw"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"de"} | - | coveredDimensionSpacePoints | [{"language":"de"}] | - | parentNodeAggregateId | "sir-david-nodenborough" | - | nodeName | "child-document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"de"} | + | coveredDimensionSpacePoints | [{"language":"de"}] | + | parentNodeAggregateId | "sir-david-nodenborough" | + | nodeName | "child-document" | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-nodeward-nodington-iii" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"gsw"} | - | coveredDimensionSpacePoints | [{"language":"gsw"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "esquire" | - | nodeAggregateClassification | "tethered" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-nodeward-nodington-iii" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"gsw"} | + | coveredDimensionSpacePoints | [{"language":"gsw"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "esquire" | + | nodeAggregateClassification | "tethered" | And the event NodeReferencesWereSet was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | sourceNodeAggregateId | "nody-mc-nodeface" | - | affectedSourceOriginDimensionSpacePoints | [{"language":"de"}] | - | referenceName | "referenceProperty" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | sourceNodeAggregateId | "nody-mc-nodeface" | + | affectedSourceOriginDimensionSpacePoints | [{"language":"de"}] | + | referenceName | "referenceProperty" | | references | [{"targetNodeAggregateId":"sir-david-nodenborough", "properties":null}] | And I run integrity violation detection Then I expect the integrity violation detection result to contain exactly 0 errors diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregateIdentifiersAreUniquePerSubgraph.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregateIdentifiersAreUniquePerSubgraph.feature index 39c4193a060..2cb73ca6535 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregateIdentifiersAreUniquePerSubgraph.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregateIdentifiersAreUniquePerSubgraph.feature @@ -14,40 +14,40 @@ Feature: Create two nodes with the same node aggregate identifier in the same su And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: Create two node variants in the same subgraph When the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"de"} | - | coveredDimensionSpacePoints | [{"language":"de"},{"language":"gsw"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"de"} | + | coveredDimensionSpacePoints | [{"language":"de"},{"language":"gsw"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"gsw"} | - | coveredDimensionSpacePoints | [{"language":"gsw"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"gsw"} | + | coveredDimensionSpacePoints | [{"language":"gsw"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | And I run integrity violation detection # one error per covered dimension space point Then I expect the integrity violation detection result to contain exactly 2 errors diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregatesAreConsistentlyClassifiedPerContentStream.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregatesAreConsistentlyClassifiedPerContentStream.feature index b77d54dc0f4..c6f44e782f6 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregatesAreConsistentlyClassifiedPerContentStream.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregatesAreConsistentlyClassifiedPerContentStream.feature @@ -14,40 +14,40 @@ Feature: Run projection integrity violation detection regarding node aggregate c And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: Create node variants of different type When the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"de"} | - | coveredDimensionSpacePoints | [{"language":"de"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"de"} | + | coveredDimensionSpacePoints | [{"language":"de"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | When the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"gsw"} | - | coveredDimensionSpacePoints | [{"language":"gsw"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "tethered" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"gsw"} | + | coveredDimensionSpacePoints | [{"language":"gsw"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "tethered" | And I run integrity violation detection Then I expect the integrity violation detection result to contain exactly 1 errors And I expect integrity violation detection result error number 1 to have code 1597825384 diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregatesAreConsistentlyTypedPerContentStream.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregatesAreConsistentlyTypedPerContentStream.feature index c2ec9ff66af..913d51eb8a9 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregatesAreConsistentlyTypedPerContentStream.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/NodeAggregatesAreConsistentlyTypedPerContentStream.feature @@ -16,40 +16,40 @@ Feature: Run projection integrity violation detection regarding node aggregate t And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: Create node variants of different type When the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:DocumentA" | - | originDimensionSpacePoint | {"language":"de"} | - | coveredDimensionSpacePoints | [{"language":"de"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:DocumentA" | + | originDimensionSpacePoint | {"language":"de"} | + | coveredDimensionSpacePoints | [{"language":"de"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | When the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:DocumentB" | - | originDimensionSpacePoint | {"language":"gsw"} | - | coveredDimensionSpacePoints | [{"language":"gsw"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:DocumentB" | + | originDimensionSpacePoint | {"language":"gsw"} | + | coveredDimensionSpacePoints | [{"language":"gsw"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | And I run integrity violation detection Then I expect the integrity violation detection result to contain exactly 1 errors And I expect integrity violation detection result error number 1 to have code 1597747062 diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/ReferenceIntegrityIsProvided.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/ReferenceIntegrityIsProvided.feature index ebd9f6528c8..4ec6cc1f57e 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/ReferenceIntegrityIsProvided.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/ProjectionIntegrityViolationDetection/ReferenceIntegrityIsProvided.feature @@ -14,35 +14,35 @@ Feature: Run integrity violation detection regarding reference relations And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language":"de"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "source-nodandaise" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"de"} | - | coveredDimensionSpacePoints | [{"language":"de"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "source-nodandaise" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"de"} | + | coveredDimensionSpacePoints | [{"language":"de"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeAggregateClassification | "regular" | Scenario: Reference a non-existing node aggregate When the event NodeReferencesWereSet was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | sourceNodeAggregateId | "source-nodandaise" | - | affectedSourceOriginDimensionSpacePoints | [{"language":"de"}] | - | referenceName | "referenceProperty" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | sourceNodeAggregateId | "source-nodandaise" | + | affectedSourceOriginDimensionSpacePoints | [{"language":"de"}] | + | referenceName | "referenceProperty" | | references | [{"targetNodeAggregateId":"anthony-destinode", "properties":null}] | And I run integrity violation detection Then I expect the integrity violation detection result to contain exactly 1 error @@ -50,22 +50,22 @@ Feature: Run integrity violation detection regarding reference relations Scenario: Reference a node aggregate not covering any of the DSPs the source does When the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "anthony-destinode" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language":"fr"} | - | coveredDimensionSpacePoints | [{"language":"fr"}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "anthony-destinode" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language":"fr"} | + | coveredDimensionSpacePoints | [{"language":"fr"}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeAggregateClassification | "regular" | And the event NodeReferencesWereSet was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | sourceNodeAggregateId | "source-nodandaise" | - | affectedSourceOriginDimensionSpacePoints | [{"language":"de"}] | - | referenceName | "referenceProperty" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | sourceNodeAggregateId | "source-nodandaise" | + | affectedSourceOriginDimensionSpacePoints | [{"language":"de"}] | + | referenceName | "referenceProperty" | | references | [{"targetNodeAggregateId":"anthony-destinode", "properties":null}] | And I run integrity violation detection Then I expect the integrity violation detection result to contain exactly 1 error diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/DimensionMismatch.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/DimensionMismatch.feature index 295aee3f6f3..381348a4230 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/DimensionMismatch.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/DimensionMismatch.feature @@ -19,29 +19,29 @@ Feature: Dimension mismatch And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"language": "en"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: Generalization detection # Node /document When the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {"language": "en"} | - | parentNodeAggregateId | "lady-eleonode-rootford" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {"language": "en"} | + | parentNodeAggregateId | "lady-eleonode-rootford" | When I change the content dimensions in content repository "default" to: | Identifier | Values | Generalizations | | language | en, de | en->de | Then I expect the following structure adjustments for type "Neos.ContentRepository.Testing:Document": - | Type | nodeAggregateId | - | NODE_COVERS_GENERALIZATION_OR_PEERS | sir-david-nodenborough | + | Type | nodeAggregateId | + | NODE_COVERS_GENERALIZATION_OR_PEERS | sir-david-nodenborough | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/DisallowedChildNode.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/DisallowedChildNode.feature index d11bf4b95e5..3c5ecc382b6 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/DisallowedChildNode.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/DisallowedChildNode.feature @@ -25,40 +25,40 @@ Feature: Remove disallowed Child Nodes and grandchild nodes And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | # Node /document/sub And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "subdoc" | - | nodeTypeName | "Neos.ContentRepository.Testing:SubDocument" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "sir-david-nodenborough" | - | nodeName | "sub" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "subdoc" | + | nodeTypeName | "Neos.ContentRepository.Testing:SubDocument" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "sir-david-nodenborough" | + | nodeName | "sub" | + | nodeAggregateClassification | "regular" | Then I expect no needed structure adjustments for type "Neos.ContentRepository:Root" Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:Document" @@ -80,8 +80,8 @@ Feature: Remove disallowed Child Nodes and grandchild nodes Then I expect no needed structure adjustments for type "Neos.ContentRepository:Root" Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:SubDocument" Then I expect the following structure adjustments for type "Neos.ContentRepository.Testing:Document": - | Type | nodeAggregateId | - | DISALLOWED_CHILD_NODE | sir-david-nodenborough | + | Type | nodeAggregateId | + | DISALLOWED_CHILD_NODE | sir-david-nodenborough | When I adjust the node structure for node type "Neos.ContentRepository.Testing:Document" Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:Document" @@ -115,40 +115,40 @@ Feature: Remove disallowed Child Nodes and grandchild nodes And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "tethered" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "tethered" | # Node /document/sub And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "subdoc" | - | nodeTypeName | "Neos.ContentRepository.Testing:SubDocument" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "sir-david-nodenborough" | - | nodeName | "sub" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "subdoc" | + | nodeTypeName | "Neos.ContentRepository.Testing:SubDocument" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "sir-david-nodenborough" | + | nodeName | "sub" | + | nodeAggregateClassification | "regular" | Then I expect no needed structure adjustments for type "Neos.ContentRepository:Root" Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:Document" @@ -180,7 +180,7 @@ Feature: Remove disallowed Child Nodes and grandchild nodes Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:Document" Then I expect the following structure adjustments for type "Neos.ContentRepository.Testing:SubDocument": | Type | nodeAggregateId | - | DISALLOWED_CHILD_NODE | subdoc | + | DISALLOWED_CHILD_NODE | subdoc | When I adjust the node structure for node type "Neos.ContentRepository.Testing:SubDocument" Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:SubDocument" diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/Properties.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/Properties.feature index 2edc8d07afd..c607109ee6b 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/Properties.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/Properties.feature @@ -26,9 +26,9 @@ Feature: Properties | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document When the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: | Key | Value | @@ -120,7 +120,7 @@ Feature: Properties | originDimensionSpacePoint | {} | | affectedDimensionSpacePoints | [{}] | | propertyValues | {"myProp": {"value": "original value", "type": "My\\Non\\Existing\\Class"}} | - | propertiesToUnset | {} | + | propertiesToUnset | {} | Then I expect the following structure adjustments for type "Neos.ContentRepository.Testing:Document": | Type | nodeAggregateId | | NON_DESERIALIZABLE_PROPERTY | sir-david-nodenborough | diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/TetheredNodesReordering.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/TetheredNodesReordering.feature index f571195edad..d4b26a6e305 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/TetheredNodesReordering.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/TetheredNodesReordering.feature @@ -20,23 +20,23 @@ Feature: Tethered Nodes Reordering Structure changes And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | When I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: - | Key | Value | + | Key | Value | | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | + | nodeName | "document" | | tetheredDescendantNodeAggregateIds | {"tethered-node": "tethered-node-agg", "other-tethered-node": "other-tethered-node-agg", "third-tethered-node": "third-tethered-node-agg"} | Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:Document" @@ -63,8 +63,8 @@ Feature: Tethered Nodes Reordering Structure changes 'Neos.ContentRepository.Testing:Tethered': [] """ Then I expect the following structure adjustments for type "Neos.ContentRepository.Testing:Document": - | Type | nodeAggregateId | - | TETHERED_NODE_WRONGLY_ORDERED | sir-david-nodenborough | + | Type | nodeAggregateId | + | TETHERED_NODE_WRONGLY_ORDERED | sir-david-nodenborough | When I adjust the node structure for node type "Neos.ContentRepository.Testing:Document" Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:Document" diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/UnknownNodeType.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/UnknownNodeType.feature index 22925ffc20f..2d07d5754a3 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/UnknownNodeType.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/StructureAdjustment/UnknownNodeType.feature @@ -12,28 +12,28 @@ Feature: Unknown node types And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | - | workspaceTitle | "Live" | - | workspaceDescription | "The live workspace" | - | newContentStreamId | "cs-identifier" | + | Key | Value | + | workspaceName | "live" | + | workspaceTitle | "Live" | + | workspaceDescription | "The live workspace" | + | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | # Node /document And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:Document" Scenario: When removing "Neos.ContentRepository.Testing:Document", we find a missing node type. @@ -41,8 +41,8 @@ Feature: Unknown node types """yaml """ Then I expect the following structure adjustments for type "Neos.ContentRepository.Testing:Document": - | Type | nodeAggregateId | - | NODE_TYPE_MISSING | sir-david-nodenborough | + | Type | nodeAggregateId | + | NODE_TYPE_MISSING | sir-david-nodenborough | When I adjust the node structure for node type "Neos.ContentRepository.Testing:Document" Then I expect no needed structure adjustments for type "Neos.ContentRepository.Testing:Document" diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/SubtreeTagging/TagSubtree_WithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/SubtreeTagging/TagSubtree_WithoutDimensions.feature index 57feea70620..9aa0b85f185 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/SubtreeTagging/TagSubtree_WithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/SubtreeTagging/TagSubtree_WithoutDimensions.feature @@ -152,9 +152,9 @@ Feature: Tag subtree without dimensions """ When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "a1a" | - | newParentNodeAggregateId | "b1" | + | Key | Value | + | nodeAggregateId | "a1a" | + | newParentNodeAggregateId | "b1" | When I execute the findSubtree query for entry node aggregate id "a" I expect the following tree with tags: """ a diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W10-IndividualNodeDiscarding/01-ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W10-IndividualNodeDiscarding/01-ConstraintChecks.feature index 2e8d0fa2d93..ceb7d58509c 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W10-IndividualNodeDiscarding/01-ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W10-IndividualNodeDiscarding/01-ConstraintChecks.feature @@ -68,15 +68,15 @@ Feature: Workspace discarding - complex chained functionality | nodeVariantSelectionStrategy | "allSpecializations" | When the command DiscardIndividualNodesFromWorkspace is executed with payload and exceptions are caught: - | Key | Value | - | workspaceName | "user-ws" | + | Key | Value | + | workspaceName | "user-ws" | | nodesToDiscard | [{"workspaceName": "user-ws", "dimensionSpacePoint": {"language": "en"}, "nodeAggregateId": "sir-david-nodenborough"}, {"workspaceName": "user-ws", "dimensionSpacePoint": {"language": "en"}, "nodeAggregateId": "sir-david-nodenborough"}] | - | newContentStreamId | "user-cs-id-rebased" | + | newContentStreamId | "user-cs-id-rebased" | Then the last command should have thrown an exception of type "NodeAggregateDoesCurrentlyNotCoverDimensionSpacePoint" When the command DiscardWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws" | - | newContentStreamId | "user-cs-id-yet-again-rebased" | + | Key | Value | + | workspaceName | "user-ws" | + | newContentStreamId | "user-cs-id-yet-again-rebased" | When I am in workspace "user-ws" and dimension space point {"language": "de"} Then I expect node aggregate identifier "nody-mc-nodeface" to lead to node user-cs-id-yet-again-rebased;nody-mc-nodeface;{"language": "de"} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W10-IndividualNodeDiscarding/02-BasicFeatures.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W10-IndividualNodeDiscarding/02-BasicFeatures.feature index cc223cb9d08..24a0de90eb7 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W10-IndividualNodeDiscarding/02-BasicFeatures.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W10-IndividualNodeDiscarding/02-BasicFeatures.feature @@ -77,19 +77,19 @@ Feature: Discard individual nodes (basics) # modify nodes in user WS And the command SetNodeProperties is executed with payload: | Key | Value | - | workspaceName | "user-test" | + | workspaceName | "user-test" | | nodeAggregateId | "sir-david-nodenborough" | | originDimensionSpacePoint | {} | | propertyValues | {"text": "Modified t1"} | And the command SetNodeProperties is executed with payload: | Key | Value | - | workspaceName | "user-test" | + | workspaceName | "user-test" | | nodeAggregateId | "nody-mc-nodeface" | | originDimensionSpacePoint | {} | | propertyValues | {"text": "Modified t2"} | And the command SetNodeProperties is executed with payload: | Key | Value | - | workspaceName | "user-test" | + | workspaceName | "user-test" | | nodeAggregateId | "sir-nodeward-nodington-iii" | | originDimensionSpacePoint | {} | | propertyValues | {"image": "Modified image"} | @@ -100,10 +100,10 @@ Feature: Discard individual nodes (basics) Scenario: It is possible to discard a single node; and only the others are live. # discard "sir-nodeward-nodington-iii" only When the command DiscardIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | | nodesToDiscard | [{"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-nodeward-nodington-iii"}] | - | newContentStreamId | "user-cs-identifier-new" | + | newContentStreamId | "user-cs-identifier-new" | When I am in workspace "user-test" and dimension space point {} @@ -143,10 +143,10 @@ Feature: Discard individual nodes (basics) Scenario: It is possible to discard all nodes When the command DiscardIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | | nodesToDiscard | [{"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-david-nodenborough"}, {"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "nody-mc-nodeface"}, {"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-nodeward-nodington-iii"}] | - | newContentStreamId | "user-cs-identifier-new" | + | newContentStreamId | "user-cs-identifier-new" | When I am in workspace "user-test" and dimension space point {} Then I expect node aggregate identifier "sir-david-nodenborough" to lead to node user-cs-identifier-new;sir-david-nodenborough;{} @@ -165,8 +165,8 @@ Feature: Discard individual nodes (basics) Scenario: When discarding a node, the live workspace does not change. # discard "sir-nodeward-nodington-iii" When the command DiscardIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | | nodesToDiscard | [{"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-nodeward-nodington-iii"}] | # live WS does not change because of a discard diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W6-WorkspaceRebasing/02-RebasingWithAutoCreatedNodes.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W6-WorkspaceRebasing/02-RebasingWithAutoCreatedNodes.feature index 387efdc36e3..3272dcc1af5 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W6-WorkspaceRebasing/02-RebasingWithAutoCreatedNodes.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W6-WorkspaceRebasing/02-RebasingWithAutoCreatedNodes.feature @@ -30,31 +30,31 @@ Feature: Rebasing auto-created nodes works And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | + | Key | Value | + | workspaceName | "live" | | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | Scenario: complex scenario (to reproduce the bug) -- see the feature description # USER workspace: create a new node with auto-created child nodes When the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | nodeName | "mcnodeface" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "lady-eleonode-rootford" | + | Key | Value | + | workspaceName | "user-test" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | nodeName | "mcnodeface" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "lady-eleonode-rootford" | And I am in workspace "user-test" and dimension space point {} Then I expect node aggregate identifier "nody-mc-nodeface" to lead to node user-cs-identifier;nody-mc-nodeface;{} When I get the node at path "mcnodeface/foo" @@ -63,14 +63,14 @@ Feature: Rebasing auto-created nodes works # - then, for the auto-created child node, set a property. When the command "SetSerializedNodeProperties" is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | $this->currentNodeAggregateId | + | workspaceName | "user-test" | + | nodeAggregateId | $this->currentNodeAggregateId | | originDimensionSpacePoint | {} | | propertyValues | {"text": {"value":"Modified","type":"string"}} | | propertiesToUnset | {} | When the command RebaseWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | # This should properly work; no error. diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W6-WorkspaceRebasing/03-RebasingWithConflictingChanges.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W6-WorkspaceRebasing/03-RebasingWithConflictingChanges.feature index 332dfe48cfc..912893eb5b9 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W6-WorkspaceRebasing/03-RebasingWithConflictingChanges.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W6-WorkspaceRebasing/03-RebasingWithConflictingChanges.feature @@ -49,58 +49,58 @@ Feature: Workspace rebasing - conflicting changes Scenario: Conflicting changes lead to OUTDATED_CONFLICT which can be recovered from via forced rebase When the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws-one" | - | baseWorkspaceName | "live" | - | newContentStreamId | "user-cs-one" | - | workspaceOwner | "owner-identifier" | + | Key | Value | + | workspaceName | "user-ws-one" | + | baseWorkspaceName | "live" | + | newContentStreamId | "user-cs-one" | + | workspaceOwner | "owner-identifier" | And the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws-two" | - | baseWorkspaceName | "live" | - | newContentStreamId | "user-cs-two" | - | workspaceOwner | "owner-identifier" | + | Key | Value | + | workspaceName | "user-ws-two" | + | baseWorkspaceName | "live" | + | newContentStreamId | "user-cs-two" | + | workspaceOwner | "owner-identifier" | When the command RemoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeVariantSelectionStrategy | "allVariants" | - | coveredDimensionSpacePoint | {} | - | workspaceName | "user-ws-one" | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeVariantSelectionStrategy | "allVariants" | + | coveredDimensionSpacePoint | {} | + | workspaceName | "user-ws-one" | When the command SetNodeProperties is executed with payload: - | Key | Value | - | workspaceName | "user-ws-two" | - | nodeAggregateId | "nody-mc-nodeface" | - | originDimensionSpacePoint | {} | - | propertyValues | {"text": "Modified"} | + | Key | Value | + | workspaceName | "user-ws-two" | + | nodeAggregateId | "nody-mc-nodeface" | + | originDimensionSpacePoint | {} | + | propertyValues | {"text": "Modified"} | And the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "noderus-secundus" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | originDimensionSpacePoint | {} | - | workspaceName | "user-ws-two" | + | Key | Value | + | nodeAggregateId | "noderus-secundus" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | originDimensionSpacePoint | {} | + | workspaceName | "user-ws-two" | And the command SetNodeProperties is executed with payload: - | Key | Value | - | workspaceName | "user-ws-two" | - | nodeAggregateId | "noderus-secundus" | - | originDimensionSpacePoint | {} | - | propertyValues | {"text": "The other node"} | + | Key | Value | + | workspaceName | "user-ws-two" | + | nodeAggregateId | "noderus-secundus" | + | originDimensionSpacePoint | {} | + | propertyValues | {"text": "The other node"} | And the command PublishWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws-one" | + | Key | Value | + | workspaceName | "user-ws-one" | Then workspace user-ws-two has status OUTDATED When the command RebaseWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws-two" | - | rebasedContentStreamId | "user-cs-two-rebased" | - | rebaseErrorHandlingStrategy | "force" | + | Key | Value | + | workspaceName | "user-ws-two" | + | rebasedContentStreamId | "user-cs-two-rebased" | + | rebaseErrorHandlingStrategy | "force" | Then workspace user-ws-two has status UP_TO_DATE And I expect a node identified by user-cs-two-rebased;noderus-secundus;{} to exist in the content graph diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W7-WorkspacePublication/02-PublishWorkspace.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W7-WorkspacePublication/02-PublishWorkspace.feature index 87f426a7e7e..5fa3e45298b 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W7-WorkspacePublication/02-PublishWorkspace.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W7-WorkspacePublication/02-PublishWorkspace.feature @@ -134,8 +134,8 @@ Feature: Workspace based content publishing # REBASING + Publishing: works now (TODO soft constraint check for old value) When the command RebaseWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | | rebasedContentStreamId | "rebased-cs-id" | And the command PublishWorkspace is executed with payload: diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/01-ConstraintChecks.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/01-ConstraintChecks.feature index 3d1dd329dcb..8c50e8da5f6 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/01-ConstraintChecks.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/01-ConstraintChecks.feature @@ -61,15 +61,15 @@ Feature: Workspace publication - complex chained functionality | targetOrigin | {"language": "en"} | When the command PublishIndividualNodesFromWorkspace is executed with payload and exceptions are caught: - | Key | Value | - | workspaceName | "user-ws" | + | Key | Value | + | workspaceName | "user-ws" | | nodesToPublish | [{"workspaceName": "user-ws", "dimensionSpacePoint": {"language": "en"}, "nodeAggregateId": "nody-mc-nodeface"}] | - | newContentStreamId | "user-cs-id-rebased" | + | newContentStreamId | "user-cs-id-rebased" | Then the last command should have thrown an exception of type "NodeAggregateDoesCurrentlyNotCoverDimensionSpacePoint" When the command PublishWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws" | - | newContentStreamId | "user-cs-id-yet-again-rebased" | + | Key | Value | + | workspaceName | "user-ws" | + | newContentStreamId | "user-cs-id-yet-again-rebased" | When I am in workspace "user-ws" and dimension space point {"language": "de"} Then I expect node aggregate identifier "nody-mc-nodeface" to lead to node user-cs-id-yet-again-rebased;nody-mc-nodeface;{"language": "de"} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/03-MoreBasicFeatures.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/03-MoreBasicFeatures.feature index 463c01f2043..85adbd6c3ab 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/03-MoreBasicFeatures.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/03-MoreBasicFeatures.feature @@ -77,19 +77,19 @@ Feature: Publishing individual nodes (basics) # modify nodes in user WS And the command SetNodeProperties is executed with payload: | Key | Value | - | workspaceName | "user-test" | + | workspaceName | "user-test" | | nodeAggregateId | "sir-david-nodenborough" | | originDimensionSpacePoint | {} | | propertyValues | {"text": "Modified t1"} | And the command SetNodeProperties is executed with payload: | Key | Value | - | workspaceName | "user-test" | + | workspaceName | "user-test" | | nodeAggregateId | "nody-mc-nodeface" | | originDimensionSpacePoint | {} | | propertyValues | {"text": "Modified t2"} | And the command SetNodeProperties is executed with payload: | Key | Value | - | workspaceName | "user-test" | + | workspaceName | "user-test" | | nodeAggregateId | "sir-nodeward-nodington-iii" | | originDimensionSpacePoint | {} | | propertyValues | {"image": "Modified image"} | @@ -100,11 +100,11 @@ Feature: Publishing individual nodes (basics) Scenario: It is possible to publish a single node; and only this one is live. # publish "sir-nodeward-nodington-iii" only When the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | | nodesToPublish | [{"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-nodeward-nodington-iii"}] | - | contentStreamIdForRemainingPart | "user-cs-identifier-remaining" | - | contentStreamIdForMatchingPart | "user-cs-identifier-matching" | + | contentStreamIdForRemainingPart | "user-cs-identifier-remaining" | + | contentStreamIdForMatchingPart | "user-cs-identifier-matching" | When I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "sir-david-nodenborough" to lead to node cs-identifier;sir-david-nodenborough;{} @@ -171,10 +171,10 @@ Feature: Publishing individual nodes (basics) Scenario: It is possible to publish all nodes When the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | | nodesToPublish | [{"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-david-nodenborough"}, {"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "nody-mc-nodeface"}, {"workspaceName": "user-test", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-nodeward-nodington-iii"}] | - | contentStreamIdForRemainingPart | "user-cs-identifier-remaining" | + | contentStreamIdForRemainingPart | "user-cs-identifier-remaining" | When I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "sir-david-nodenborough" to lead to node cs-identifier;sir-david-nodenborough;{} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/04-AllFeaturePublication.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/04-AllFeaturePublication.feature index fc456d69214..4ab6fc9c584 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/04-AllFeaturePublication.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/04-AllFeaturePublication.feature @@ -35,74 +35,74 @@ Feature: Publishing hide/show scenario of nodes And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | + | Key | Value | + | workspaceName | "live" | | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | initialPropertyValues | {"text": {"type": "string", "value": "Initial t1"}} | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | initialPropertyValues | {"text": {"type": "string", "value": "Initial t1"}} | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "sir-david-nodenborough" | - | initialPropertyValues | {"text": {"type": "string", "value": "Initial t2"}} | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "sir-david-nodenborough" | + | initialPropertyValues | {"text": {"type": "string", "value": "Initial t2"}} | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-nodeward-nodington-iii" | - | nodeTypeName | "Neos.ContentRepository.Testing:Image" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | initialPropertyValues | {"image": {"type": "image", "value": "Initial image"}} | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-nodeward-nodington-iii" | + | nodeTypeName | "Neos.ContentRepository.Testing:Image" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | initialPropertyValues | {"image": {"type": "image", "value": "Initial image"}} | + | nodeAggregateClassification | "regular" | Scenario: (DisableNode) It is possible to publish hiding of a node. Given the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | And I am in workspace "user-test" # SETUP: hide two nodes in USER workspace Given the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {} | + | nodeVariantSelectionStrategy | "allVariants" | And the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-nodeward-nodington-iii" | - | coveredDimensionSpacePoint | {} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-nodeward-nodington-iii" | + | coveredDimensionSpacePoint | {} | + | nodeVariantSelectionStrategy | "allVariants" | When the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | - | contentStreamIdForRemainingPart | "remaining-cs-id" | - | contentStreamIdForMatchingPart | "matching-cs-id" | + | Key | Value | + | workspaceName | "user-test" | + | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | + | contentStreamIdForRemainingPart | "remaining-cs-id" | + | contentStreamIdForMatchingPart | "matching-cs-id" | When I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "sir-david-nodenborough" to lead to no node @@ -117,42 +117,42 @@ Feature: Publishing hide/show scenario of nodes Scenario: (ShowNode) It is possible to publish showing of a node. # BEFORE: ensure two nodes are hidden in live (and user WS) Given the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-david-nodenborough" | - | coveredDimensionSpacePoint | {} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-david-nodenborough" | + | coveredDimensionSpacePoint | {} | + | nodeVariantSelectionStrategy | "allVariants" | Given the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "sir-nodeward-nodington-iii" | - | coveredDimensionSpacePoint | {} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "sir-nodeward-nodington-iii" | + | coveredDimensionSpacePoint | {} | + | nodeVariantSelectionStrategy | "allVariants" | # we need to ensure that the projections are up to date now; otherwise a content stream is forked with an out- # of-date base version. This means the content stream can never be merged back, but must always be rebased. Given the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | # SETUP: enable two nodes in USER workspace Given the command EnableNodeAggregate is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "sir-david-nodenborough" | + | workspaceName | "user-test" | + | nodeAggregateId | "sir-david-nodenborough" | | coveredDimensionSpacePoint | {} | | nodeVariantSelectionStrategy | "allVariants" | Given the command EnableNodeAggregate is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "sir-nodeward-nodington-iii" | + | workspaceName | "user-test" | + | nodeAggregateId | "sir-nodeward-nodington-iii" | | coveredDimensionSpacePoint | {} | | nodeVariantSelectionStrategy | "allVariants" | When the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | - | contentStreamIdForRemainingPart | "user-cs-identifier-modified" | + | Key | Value | + | workspaceName | "user-test" | + | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | + | contentStreamIdForRemainingPart | "user-cs-identifier-modified" | When I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "sir-david-nodenborough" to lead to node cs-identifier;sir-david-nodenborough;{} @@ -209,31 +209,31 @@ Feature: Publishing hide/show scenario of nodes Scenario: (RemoveNodeAggregate) It is possible to publish a node removal Given the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | # SETUP: remove two nodes in USER workspace When the command RemoveNodeAggregate is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "sir-david-nodenborough" | + | workspaceName | "user-test" | + | nodeAggregateId | "sir-david-nodenborough" | | coveredDimensionSpacePoint | {} | | nodeVariantSelectionStrategy | "allVariants" | When the command RemoveNodeAggregate is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "sir-nodeward-nodington-iii" | + | workspaceName | "user-test" | + | nodeAggregateId | "sir-nodeward-nodington-iii" | | coveredDimensionSpacePoint | {} | | nodeVariantSelectionStrategy | "allVariants" | When the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | - | contentStreamIdForRemainingPart | "user-cs-identifier-modified" | + | Key | Value | + | workspaceName | "user-test" | + | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | + | contentStreamIdForRemainingPart | "user-cs-identifier-modified" | When I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "sir-david-nodenborough" to lead to no node @@ -248,29 +248,29 @@ Feature: Publishing hide/show scenario of nodes Scenario: (RemoveNodeAggregate) It is possible to publish a node removal Given the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | # SETUP: remove two nodes in USER workspace When the command RemoveNodeAggregate is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "sir-david-nodenborough" | + | workspaceName | "user-test" | + | nodeAggregateId | "sir-david-nodenborough" | | coveredDimensionSpacePoint | {} | | nodeVariantSelectionStrategy | "allVariants" | When the command RemoveNodeAggregate is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "sir-nodeward-nodington-iii" | + | workspaceName | "user-test" | + | nodeAggregateId | "sir-nodeward-nodington-iii" | | coveredDimensionSpacePoint | {} | | nodeVariantSelectionStrategy | "allVariants" | When the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | + | Key | Value | + | workspaceName | "user-test" | + | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | When I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "sir-david-nodenborough" to lead to no node @@ -285,32 +285,32 @@ Feature: Publishing hide/show scenario of nodes Scenario: (SetNodeReferences) It is possible to publish setting node references Given the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | # SETUP: set two node references in USER workspace When the command SetNodeReferences is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | sourceNodeAggregateId | "sir-david-nodenborough" | + | workspaceName | "user-test" | + | sourceNodeAggregateId | "sir-david-nodenborough" | | sourceOriginDimensionSpacePoint | {} | | referenceName | "referenceProperty" | | references | [{"target":"sir-nodeward-nodington-iii"}] | And the command SetNodeReferences is executed with payload: | Key | Value | - | workspaceName | "user-test" | - | sourceNodeAggregateId | "nody-mc-nodeface" | + | workspaceName | "user-test" | + | sourceNodeAggregateId | "nody-mc-nodeface" | | sourceOriginDimensionSpacePoint | {} | | referenceName | "referenceProperty" | | references | [{"target":"sir-nodeward-nodington-iii"}] | When the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | - | contentStreamIdForRemainingPart | "user-cs-identifier-modified" | + | Key | Value | + | workspaceName | "user-test" | + | nodesToPublish | [{"nodeAggregateId": "sir-david-nodenborough", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | + | contentStreamIdForRemainingPart | "user-cs-identifier-modified" | When I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "sir-david-nodenborough" to lead to node cs-identifier;sir-david-nodenborough;{} @@ -342,34 +342,34 @@ Feature: Publishing hide/show scenario of nodes Scenario: (CreateNodeAggregateWithNode) It is possible to publish new nodes Given the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | # SETUP: set two new nodes in USER workspace When the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "new1-agg" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "foo" | + | Key | Value | + | workspaceName | "user-test" | + | nodeAggregateId | "new1-agg" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "foo" | When the command CreateNodeAggregateWithNodeAndSerializedProperties is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "new2-agg" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "foo2" | + | Key | Value | + | workspaceName | "user-test" | + | nodeAggregateId | "new2-agg" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "foo2" | When the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodesToPublish | [{"nodeAggregateId": "new1-agg", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | - | contentStreamIdForRemainingPart | "user-cs-identifier-modified" | + | Key | Value | + | workspaceName | "user-test" | + | nodesToPublish | [{"nodeAggregateId": "new1-agg", "workspaceName": "user-test", "dimensionSpacePoint": {}}] | + | contentStreamIdForRemainingPart | "user-cs-identifier-modified" | When I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "new1-agg" to lead to node cs-identifier;new1-agg;{} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/05-PublishMovedNodesWithoutDimensions.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/05-PublishMovedNodesWithoutDimensions.feature index d403f26c698..35203d3d865 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/05-PublishMovedNodesWithoutDimensions.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W8-IndividualNodePublication/05-PublishMovedNodesWithoutDimensions.feature @@ -19,66 +19,66 @@ Feature: Publishing moved nodes without dimensions And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | + | Key | Value | + | workspaceName | "live" | | newContentStreamId | "cs-identifier" | And I am in workspace "live" And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-david-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-david-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "document" | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "sir-david-nodenborough" | - | nodeName | "child-document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "sir-david-nodenborough" | + | nodeName | "child-document" | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "sir-nodeward-nodington-iii" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "esquire" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "sir-nodeward-nodington-iii" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "esquire" | + | nodeAggregateClassification | "regular" | And the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | Scenario: Publish the move of a node to the end of its siblings When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | workspaceName | "user" | - | dimensionSpacePoint | {} | + | Key | Value | + | workspaceName | "user" | + | dimensionSpacePoint | {} | | nodeAggregateId | "sir-david-nodenborough" | | newParentNodeAggregateId | null | | newSucceedingSiblingNodeAggregateId | null | And the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user" | - | nodesToPublish | [{"workspaceName": "user", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-david-nodenborough"}] | + | Key | Value | + | workspaceName | "user" | + | nodesToPublish | [{"workspaceName": "user", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-david-nodenborough"}] | Then I expect the graph projection to consist of exactly 4 nodes And I expect a node identified by cs-identifier;lady-eleonode-rootford;{} to exist in the content graph @@ -108,16 +108,16 @@ Feature: Publishing moved nodes without dimensions Scenario: Publish the move of a node before one of its siblings When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | workspaceName | "user" | + | Key | Value | + | workspaceName | "user" | | nodeAggregateId | "sir-nodeward-nodington-iii" | - | dimensionSpacePoint | {} | + | dimensionSpacePoint | {} | | newParentNodeAggregateId | null | | newSucceedingSiblingNodeAggregateId | "sir-david-nodenborough" | And the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user" | - | nodesToPublish | [{"workspaceName": "user", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-nodeward-nodington-iii"}] | + | Key | Value | + | workspaceName | "user" | + | nodesToPublish | [{"workspaceName": "user", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-nodeward-nodington-iii"}] | Then I expect the graph projection to consist of exactly 4 nodes And I expect a node identified by cs-identifier;lady-eleonode-rootford;{} to exist in the content graph @@ -147,26 +147,26 @@ Feature: Publishing moved nodes without dimensions Scenario: Publish the move of a node to a new parent and the end of its children Given the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "lady-abigail-nodenborough" | - | nodeTypeName | "Neos.ContentRepository.Testing:Document" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "sir-nodeward-nodington-iii" | - | nodeName | "other-document" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "lady-abigail-nodenborough" | + | nodeTypeName | "Neos.ContentRepository.Testing:Document" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "sir-nodeward-nodington-iii" | + | nodeName | "other-document" | + | nodeAggregateClassification | "regular" | When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | workspaceName | "user" | + | Key | Value | + | workspaceName | "user" | | nodeAggregateId | "sir-david-nodenborough" | - | dimensionSpacePoint | {} | + | dimensionSpacePoint | {} | | newParentNodeAggregateId | "sir-nodeward-nodington-iii" | And the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user" | - | nodesToPublish | [{"workspaceName": "user", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-david-nodenborough"}] | + | Key | Value | + | workspaceName | "user" | + | nodesToPublish | [{"workspaceName": "user", "dimensionSpacePoint": {}, "nodeAggregateId": "sir-david-nodenborough"}] | Then I expect the graph projection to consist of exactly 5 nodes And I expect a node identified by cs-identifier;lady-eleonode-rootford;{} to exist in the content graph @@ -201,16 +201,16 @@ Feature: Publishing moved nodes without dimensions Scenario: Publish the move of a node to a new parent and before one of its children When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | workspaceName | "user" | + | Key | Value | + | workspaceName | "user" | | nodeAggregateId | "nody-mc-nodeface" | - | dimensionSpacePoint | {} | + | dimensionSpacePoint | {} | | newParentNodeAggregateId | "lady-eleonode-rootford" | | newSucceedingSiblingNodeAggregateId | "sir-nodeward-nodington-iii" | And the command PublishIndividualNodesFromWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user" | - | nodesToPublish | [{"workspaceName": "user", "dimensionSpacePoint": {}, "nodeAggregateId": "nody-mc-nodeface"}] | + | Key | Value | + | workspaceName | "user" | + | nodesToPublish | [{"workspaceName": "user", "dimensionSpacePoint": {}, "nodeAggregateId": "nody-mc-nodeface"}] | Then I expect the graph projection to consist of exactly 4 nodes And I expect a node identified by cs-identifier;lady-eleonode-rootford;{} to exist in the content graph diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W9-WorkspaceDiscarding/02-DiscardWorkspace.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W9-WorkspaceDiscarding/02-DiscardWorkspace.feature index 823d5bbfb05..6452664bc50 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W9-WorkspaceDiscarding/02-DiscardWorkspace.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/W9-WorkspaceDiscarding/02-DiscardWorkspace.feature @@ -102,49 +102,49 @@ Feature: Workspace discarding - basic functionality Scenario: Conflicting changes lead to OUTDATED which can be recovered from via discard When the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws-one" | - | baseWorkspaceName | "live" | - | newContentStreamId | "user-cs-one" | - | workspaceOwner | "owner-identifier" | + | Key | Value | + | workspaceName | "user-ws-one" | + | baseWorkspaceName | "live" | + | newContentStreamId | "user-cs-one" | + | workspaceOwner | "owner-identifier" | And the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws-two" | - | baseWorkspaceName | "live" | - | newContentStreamId | "user-cs-two" | - | workspaceOwner | "owner-identifier" | + | Key | Value | + | workspaceName | "user-ws-two" | + | baseWorkspaceName | "live" | + | newContentStreamId | "user-cs-two" | + | workspaceOwner | "owner-identifier" | When the command RemoveNodeAggregate is executed with payload: - | Key | Value | - | workspaceName | "user-ws-one" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeVariantSelectionStrategy | "allVariants" | - | coveredDimensionSpacePoint | {} | + | Key | Value | + | workspaceName | "user-ws-one" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeVariantSelectionStrategy | "allVariants" | + | coveredDimensionSpacePoint | {} | When the command SetNodeProperties is executed with payload: - | Key | Value | - | workspaceName | "user-ws-two" | - | nodeAggregateId | "nody-mc-nodeface" | - | originDimensionSpacePoint | {} | - | propertyValues | {"text": "Modified"} | + | Key | Value | + | workspaceName | "user-ws-two" | + | nodeAggregateId | "nody-mc-nodeface" | + | originDimensionSpacePoint | {} | + | propertyValues | {"text": "Modified"} | And the command PublishWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws-one" | + | Key | Value | + | workspaceName | "user-ws-one" | Then workspace user-ws-two has status OUTDATED When the command RebaseWorkspace is executed with payload and exceptions are caught: - | Key | Value | - | workspaceName | "user-ws-two" | - | rebasedContentStreamId | "user-cs-two-rebased" | + | Key | Value | + | workspaceName | "user-ws-two" | + | rebasedContentStreamId | "user-cs-two-rebased" | Then workspace user-ws-two has status OUTDATED When the command DiscardWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-ws-two" | - | newContentStreamId | "user-cs-two-discarded" | + | Key | Value | + | workspaceName | "user-ws-two" | + | newContentStreamId | "user-cs-two-discarded" | Then workspace user-ws-two has status OUTDATED diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/NodeOperationsOnMultipleWorkspaces.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/NodeOperationsOnMultipleWorkspaces.feature index eac6dd5e997..54f888939af 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/NodeOperationsOnMultipleWorkspaces.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/NodeOperationsOnMultipleWorkspaces.feature @@ -13,62 +13,62 @@ Feature: Single Node operations on multiple workspaces/content streams; e.g. cop And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | + | Key | Value | + | workspaceName | "live" | | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "child" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "child" | + | nodeAggregateClassification | "regular" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nodingers-cat" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "nody-mc-nodeface" | - | nodeName | "pet" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nodingers-cat" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "nody-mc-nodeface" | + | nodeName | "pet" | + | nodeAggregateClassification | "regular" | And the command SetNodeProperties is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | originDimensionSpacePoint | {} | - | propertyValues | {"text": "Original"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | originDimensionSpacePoint | {} | + | propertyValues | {"text": "Original"} | And the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | Scenario: Set property of a node Given the command SetNodeProperties is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | nodeAggregateId | "nody-mc-nodeface" | - | originDimensionSpacePoint | {} | - | propertyValues | {"text": "Changed"} | + | Key | Value | + | workspaceName | "user-test" | + | nodeAggregateId | "nody-mc-nodeface" | + | originDimensionSpacePoint | {} | + | propertyValues | {"text": "Changed"} | Then I expect exactly 2 events to be published on stream with prefix "ContentStream:user-cs-identifier" And event at index 1 is of type "NodePropertiesWereSet" with payload: - | Key | Expected | - | contentStreamId | "user-cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | originDimensionSpacePoint | [] | - | propertyValues.text.value | "Changed" | + | Key | Expected | + | contentStreamId | "user-cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | originDimensionSpacePoint | [] | + | propertyValues.text.value | "Changed" | And I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "nody-mc-nodeface" to lead to node cs-identifier;nody-mc-nodeface;{} diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/PruneContentStreams.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/PruneContentStreams.feature index b10efb96252..d97c1c7ec15 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/PruneContentStreams.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/PruneContentStreams.feature @@ -10,14 +10,14 @@ Feature: If content streams are not in use anymore by the workspace, they can be And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | + | Key | Value | + | workspaceName | "live" | | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "root-node" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "root-node" | + | nodeTypeName | "Neos.ContentRepository:Root" | Scenario: content streams are marked as IN_USE_BY_WORKSPACE properly after creation Then the content stream "cs-identifier" has state "IN_USE_BY_WORKSPACE" @@ -25,22 +25,22 @@ Feature: If content streams are not in use anymore by the workspace, they can be Scenario: on creating a nested workspace, the new content stream is marked as IN_USE_BY_WORKSPACE. When the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | Then the content stream "user-cs-identifier" has state "IN_USE_BY_WORKSPACE" Scenario: when rebasing a nested workspace, the new content stream will be marked as IN_USE_BY_WORKSPACE; and the old content stream is NO_LONGER_IN_USE. When the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | When the command RebaseWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | When I am in workspace "user-test" and dimension space point {} Then the current content stream has state "IN_USE_BY_WORKSPACE" @@ -49,13 +49,13 @@ Feature: If content streams are not in use anymore by the workspace, they can be Scenario: when pruning content streams, NO_LONGER_IN_USE content streams will be properly cleaned from the graph projection. When the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | When the command RebaseWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | | rebasedContentStreamId | "user-cs-identifier-rebased" | # now, we have one unused content stream (the old content stream of the user-test workspace) @@ -70,13 +70,13 @@ Feature: If content streams are not in use anymore by the workspace, they can be Scenario: NO_LONGER_IN_USE content streams can be cleaned up completely (simple case) When the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | When the command RebaseWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | # now, we have one unused content stream (the old content stream of the user-test workspace) When I prune unused content streams @@ -88,22 +88,22 @@ Feature: If content streams are not in use anymore by the workspace, they can be Scenario: NO_LONGER_IN_USE content streams are only cleaned up if no other content stream which is still in use depends on it # we build a "review" workspace, and then a "user-test" workspace depending on the review workspace. When the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "review" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "review" | + | baseWorkspaceName | "live" | | newContentStreamId | "review-cs-identifier" | And the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "review" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "review" | | newContentStreamId | "user-cs-identifier" | # now, we rebase the "review" workspace, effectively marking the "review-cs-identifier" content stream as NO_LONGER_IN_USE. # however, we are not allowed to drop the content stream from the event store yet, because the "user-cs-identifier" is based # on the (no-longer-in-direct-use) review-cs-identifier. When the command RebaseWorkspace is executed with payload: - | Key | Value | - | workspaceName | "review" | + | Key | Value | + | workspaceName | "review" | When I prune unused content streams And I prune removed content streams from the event stream diff --git a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/SingleNodeOperationsOnLiveWorkspace.feature b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/SingleNodeOperationsOnLiveWorkspace.feature index 25513e2d714..bc62516f489 100644 --- a/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/SingleNodeOperationsOnLiveWorkspace.feature +++ b/Neos.ContentRepository.BehavioralTests/Tests/Behavior/Features/Workspaces/SingleNodeOperationsOnLiveWorkspace.feature @@ -15,39 +15,39 @@ Feature: Single Node operations on live workspace And using identifier "default", I define a content repository And I am in content repository "default" And the command CreateRootWorkspace is executed with payload: - | Key | Value | - | workspaceName | "live" | + | Key | Value | + | workspaceName | "live" | | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.ContentRepository:Root" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.ContentRepository:Root" | And the event NodeAggregateWithNodeWasCreated was published with payload: - | Key | Value | - | workspaceName | "live" | - | contentStreamId | "cs-identifier" | - | nodeAggregateId | "nody-mc-nodeface" | - | nodeTypeName | "Neos.ContentRepository.Testing:Content" | - | originDimensionSpacePoint | {} | - | coveredDimensionSpacePoints | [{}] | - | parentNodeAggregateId | "lady-eleonode-rootford" | - | nodeName | "child" | - | nodeAggregateClassification | "regular" | + | Key | Value | + | workspaceName | "live" | + | contentStreamId | "cs-identifier" | + | nodeAggregateId | "nody-mc-nodeface" | + | nodeTypeName | "Neos.ContentRepository.Testing:Content" | + | originDimensionSpacePoint | {} | + | coveredDimensionSpacePoints | [{}] | + | parentNodeAggregateId | "lady-eleonode-rootford" | + | nodeName | "child" | + | nodeAggregateClassification | "regular" | Scenario: Set property of a node Given the command SetNodeProperties is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | - | originDimensionSpacePoint | {} | - | propertyValues | {"text": "Hello"} | + | Key | Value | + | nodeAggregateId | "nody-mc-nodeface" | + | originDimensionSpacePoint | {} | + | propertyValues | {"text": "Hello"} | Then I expect exactly 4 events to be published on stream with prefix "ContentStream:cs-identifier" And event at index 3 is of type "NodePropertiesWereSet" with payload: - | Key | Expected | - | nodeAggregateId | "nody-mc-nodeface" | - | originDimensionSpacePoint | [] | - | propertyValues.text.value | "Hello" | + | Key | Expected | + | nodeAggregateId | "nody-mc-nodeface" | + | originDimensionSpacePoint | [] | + | propertyValues.text.value | "Hello" | And I am in workspace "live" and dimension space point {} Then I expect node aggregate identifier "nody-mc-nodeface" to lead to node cs-identifier;nody-mc-nodeface;{} @@ -58,7 +58,7 @@ Feature: Single Node operations on live workspace Scenario: Error on invalid dimension space point Given the command SetNodeProperties is executed with payload and exceptions are caught: | Key | Value | - | nodeAggregateId | "nody-mc-nodeface" | + | nodeAggregateId | "nody-mc-nodeface" | | originDimensionSpacePoint | {"not": "existing"} | | propertyValues | {"text": "Hello"} | Then the last command should have thrown an exception of type "DimensionSpacePointNotFound" diff --git a/Neos.ContentRepository.Export/Tests/Behavior/Features/Import/Import.feature b/Neos.ContentRepository.Export/Tests/Behavior/Features/Import/Import.feature index 39a535ff64e..6c61f644b57 100644 --- a/Neos.ContentRepository.Export/Tests/Behavior/Features/Import/Import.feature +++ b/Neos.ContentRepository.Export/Tests/Behavior/Features/Import/Import.feature @@ -32,7 +32,7 @@ Feature: As a user of the CR I want to export the event stream | nodeTypeName | "Neos.Neos:Sites" | And event at index 2 is of type "NodeAggregateWithNodeWasCreated" with payload: | Key | Expected | - | workspaceName | "workspace-name" | + | workspaceName | "workspace-name" | | contentStreamId | "cs-identifier" | | nodeAggregateId | "acme-site" | | nodeTypeName | "Vendor.Site:HomePage" | diff --git a/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Basic.feature b/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Basic.feature index a1dea4af085..6dd05a8d31c 100644 --- a/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Basic.feature +++ b/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Basic.feature @@ -19,11 +19,11 @@ Feature: Simple migrations without content dimensions Scenario: Single homepage node with one property When I have the following node data rows: - | Identifier | Path | Node Type | Properties | - | sites-node-id | /sites | unstructured | | - | site-node-id | /sites/test-site | Some.Package:Homepage | {"text": "foo"} | + | Identifier | Path | Node Type | Properties | + | sites-node-id | /sites | unstructured | | + | site-node-id | /sites/test-site | Some.Package:Homepage | {"text": "foo"} | And I run the event migration for content stream "cs-id" Then I expect the following events to be exported - | Type | Payload | - | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | + | Type | Payload | + | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}}} | diff --git a/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Errors.feature b/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Errors.feature index 5058e8674d6..49b2b021c08 100644 --- a/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Errors.feature +++ b/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Errors.feature @@ -31,7 +31,7 @@ Feature: Exceptional cases during migrations When I have the following node data rows: | Identifier | Path | Node Type | Dimension Values | | sites-node-id | /sites | unstructured | | - | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["de"]} | + | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["de"]} | | site-node-id | /sites/test-site | Some.Package:SomeOtherHomepage | {"language": ["en"]} | And I run the event migration Then I expect a MigrationError with the message @@ -42,15 +42,15 @@ Feature: Exceptional cases during migrations # Note: The behavior was changed with https://github.com/neos/neos-development-collection/pull/4201 Scenario: Node with missing parent When I have the following node data rows: - | Identifier | Path | Node Type | - | sites | /sites | unstructured | - | a | /sites/a | Some.Package:Homepage | - | c | /sites/b/c | unstructured | + | Identifier | Path | Node Type | + | sites | /sites | unstructured | + | a | /sites/a | Some.Package:Homepage | + | c | /sites/b/c | unstructured | And I run the event migration Then I expect the following events to be exported | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"nodeAggregateId": "sites", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | - | NodeAggregateWithNodeWasCreated | {"nodeAggregateId": "a", "nodeTypeName": "Some.Package:Homepage", "parentNodeAggregateId": "sites"} | + | NodeAggregateWithNodeWasCreated | {"nodeAggregateId": "a", "nodeTypeName": "Some.Package:Homepage", "parentNodeAggregateId": "sites"} | And I expect the following errors to be logged | Failed to find parent node for node with id "c" and dimensions: []. Please ensure that the new content repository has a valid content dimension configuration. Also note that the old CR can sometimes have orphaned nodes. | @@ -58,17 +58,17 @@ Feature: Exceptional cases during migrations # Note: The behavior was changed with https://github.com/neos/neos-development-collection/pull/4201 Scenario: Nodes out of order When I have the following node data rows: - | Identifier | Path | Node Type | - | sites | /sites | unstructured | - | a | /sites/a | Some.Package:Homepage | - | c | /sites/b/c | unstructured | - | b | /sites/b | Some.Package:Homepage | + | Identifier | Path | Node Type | + | sites | /sites | unstructured | + | a | /sites/a | Some.Package:Homepage | + | c | /sites/b/c | unstructured | + | b | /sites/b | Some.Package:Homepage | And I run the event migration Then I expect the following events to be exported | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"nodeAggregateId": "sites", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | - | NodeAggregateWithNodeWasCreated | {"nodeAggregateId": "a", "nodeTypeName": "Some.Package:Homepage", "parentNodeAggregateId": "sites"} | - | NodeAggregateWithNodeWasCreated | {"nodeAggregateId": "b", "nodeTypeName": "Some.Package:Homepage", "parentNodeAggregateId": "sites"} | + | NodeAggregateWithNodeWasCreated | {"nodeAggregateId": "a", "nodeTypeName": "Some.Package:Homepage", "parentNodeAggregateId": "sites"} | + | NodeAggregateWithNodeWasCreated | {"nodeAggregateId": "b", "nodeTypeName": "Some.Package:Homepage", "parentNodeAggregateId": "sites"} | And I expect the following errors to be logged | Failed to find parent node for node with id "c" and dimensions: []. Please ensure that the new content repository has a valid content dimension configuration. Also note that the old CR can sometimes have orphaned nodes. | @@ -98,9 +98,9 @@ Feature: Exceptional cases during migrations Scenario: Invalid node properties (no JSON) When I have the following node data rows: - | Identifier | Path | Properties | Node Type | - | sites | /sites | | | - | a | /sites/a | not json | Some.Package:Homepage | + | Identifier | Path | Properties | Node Type | + | sites | /sites | | | + | a | /sites/a | not json | Some.Package:Homepage | And I run the event migration Then I expect a MigrationError with the message """ @@ -112,11 +112,11 @@ Feature: Exceptional cases during migrations | Identifier | Default | Values | Generalizations | | language | en | en, de, ch | ch->de | When I have the following node data rows: - | Identifier | Path | Node Type | Dimension Values | - | sites-node-id | /sites | unstructured | | - | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["de"]} | - | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["ch"]} | - | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["ch"]} | + | Identifier | Path | Node Type | Dimension Values | + | sites-node-id | /sites | unstructured | | + | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["de"]} | + | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["ch"]} | + | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["ch"]} | And I run the event migration Then I expect a MigrationError with the message """ @@ -128,10 +128,10 @@ Feature: Exceptional cases during migrations | Identifier | Default | Values | Generalizations | | language | en | en, de, ch | ch->de | When I have the following node data rows: - | Identifier | Path | Node Type | Dimension Values | - | sites-node-id | /sites | unstructured | | - | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["de"]} | - | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["de"]} | + | Identifier | Path | Node Type | Dimension Values | + | sites-node-id | /sites | unstructured | | + | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["de"]} | + | site-node-id | /sites/test-site | Some.Package:Homepage | {"language": ["de"]} | And I run the event migration Then I expect a MigrationError with the message """ diff --git a/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Hidden.feature b/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Hidden.feature index d6204a60d80..ef3ec403e0e 100644 --- a/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Hidden.feature +++ b/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/Hidden.feature @@ -35,7 +35,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | Scenario: A node with a "hidden" property false must not get disabled When I have the following node data rows: @@ -58,7 +58,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}, "disableAfterDateTime": {"type": "DateTimeImmutable", "value": "1990-01-01 10:10:10"}, "enableAfterDateTime": {"type": "DateTimeImmutable", "value": "1989-01-01 10:10:10"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | Scenario: A node with active "hidden before" property, after a "hidden after" property must not get disabled When I have the following node data rows: @@ -93,7 +93,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}, "disableAfterDateTime": {"type": "DateTimeImmutable", "value": "1990-01-01 10:10:10"}, "enableAfterDateTime": {"type": "DateTimeImmutable", "value": "2099-01-01 10:10:10"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | Scenario: A node with a "hidden after" property in future and a "hidden before" property later in future must not get disabled When I have the following node data rows: @@ -116,7 +116,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}, "disableAfterDateTime": {"type": "DateTimeImmutable", "value": "2099-01-01 10:10:10"}, "enableAfterDateTime": {"type": "DateTimeImmutable", "value": "2098-01-01 10:10:10"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | Scenario: A node with a active "hidden before" property must not get disabled When I have the following node data rows: @@ -139,7 +139,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}, "disableAfterDateTime": {"type": "DateTimeImmutable", "value": "1990-01-01 10:10:10"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | Scenario: A node with a "hidden after" property in future must not get disabled When I have the following node data rows: @@ -162,5 +162,5 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}, "enableAfterDateTime": {"type": "DateTimeImmutable", "value": "2099-01-01 10:10:10"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | diff --git a/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/HiddenWithoutTimeableNodeVisibility.feature b/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/HiddenWithoutTimeableNodeVisibility.feature index 1a48d0d583d..bb701dab822 100644 --- a/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/HiddenWithoutTimeableNodeVisibility.feature +++ b/Neos.ContentRepository.LegacyNodeMigration/Tests/Behavior/Features/HiddenWithoutTimeableNodeVisibility.feature @@ -28,7 +28,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | Scenario: A node with a "hidden" property false must not get disabled When I have the following node data rows: @@ -51,7 +51,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | And I expect the following warnings to be logged | Skipped the migration of your "hiddenBeforeDateTime" and "hiddenAfterDateTime" properties as your target NodeTypes do not inherit "Neos.TimeableNodeVisibility:Timeable". Please install neos/timeable-node-visibility, if you want to migrate them. | @@ -91,7 +91,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | And I expect the following warnings to be logged | Skipped the migration of your "hiddenBeforeDateTime" and "hiddenAfterDateTime" properties as your target NodeTypes do not inherit "Neos.TimeableNodeVisibility:Timeable". Please install neos/timeable-node-visibility, if you want to migrate them. | @@ -118,7 +118,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | And I expect the following warnings to be logged | Skipped the migration of your "hiddenBeforeDateTime" and "hiddenAfterDateTime" properties as your target NodeTypes do not inherit "Neos.TimeableNodeVisibility:Timeable". Please install neos/timeable-node-visibility, if you want to migrate them. | @@ -145,7 +145,7 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | And I expect the following warnings to be logged | Skipped the migration of your "hiddenBeforeDateTime" and "hiddenAfterDateTime" properties as your target NodeTypes do not inherit "Neos.TimeableNodeVisibility:Timeable". Please install neos/timeable-node-visibility, if you want to migrate them. | @@ -172,6 +172,6 @@ Feature: Simple migrations without content dimensions for hidden state migration | Type | Payload | | RootNodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "sites-node-id", "nodeTypeName": "Neos.Neos:Sites", "nodeAggregateClassification": "root"} | | NodeAggregateWithNodeWasCreated | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "nodeTypeName": "Some.Package:Homepage", "nodeName": "test-site", "parentNodeAggregateId": "sites-node-id", "nodeAggregateClassification": "regular", "initialPropertyValues": {"text": {"type": "string", "value": "foo"}}} | - | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | + | SubtreeWasTagged | {"contentStreamId": "cs-id", "nodeAggregateId": "site-node-id", "tag": "disabled"} | And I expect the following warnings to be logged | Skipped the migration of your "hiddenBeforeDateTime" and "hiddenAfterDateTime" properties as your target NodeTypes do not inherit "Neos.TimeableNodeVisibility:Timeable". Please install neos/timeable-node-visibility, if you want to migrate them. | diff --git a/Neos.Neos/Tests/Behavior/Features/ContentCache/NodesInOtherWorkspace.feature b/Neos.Neos/Tests/Behavior/Features/ContentCache/NodesInOtherWorkspace.feature index edb3c90f2e9..c590748ce4f 100644 --- a/Neos.Neos/Tests/Behavior/Features/ContentCache/NodesInOtherWorkspace.feature +++ b/Neos.Neos/Tests/Behavior/Features/ContentCache/NodesInOtherWorkspace.feature @@ -34,9 +34,9 @@ Feature: Tests for the ContentCacheFlusher and cache flushing on node and nodety | workspaceName | "live" | | newContentStreamId | "cs-identifier" | And the command CreateWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | - | baseWorkspaceName | "live" | + | Key | Value | + | workspaceName | "user-test" | + | baseWorkspaceName | "live" | | newContentStreamId | "user-cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: @@ -50,8 +50,8 @@ Feature: Tests for the ContentCacheFlusher and cache flushing on node and nodety | a1-1 | a1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1-1", "title": "Node a1-1"} | a1-1 | | a2 | a | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a2", "title": "Node a2"} | a2 | When the command RebaseWorkspace is executed with payload: - | Key | Value | - | workspaceName | "user-test" | + | Key | Value | + | workspaceName | "user-test" | And A site exists for node name "a" and domain "http://localhost" And the sites configuration is: """yaml @@ -241,8 +241,8 @@ Feature: Tests for the ContentCacheFlusher and cache flushing on node and nodety And I am in workspace "user-test" and dimension space point {} When the command SetNodeProperties is executed with payload: - | Key | Value | - | contentStreamId | "cs-identifier" | + | Key | Value | + | contentStreamId | "cs-identifier" | | nodeAggregateId | "a1-1" | | propertyValues | {"title": "Node a1-1 new"} | diff --git a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Basic.feature b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Basic.feature index 70cbc3f531f..7fd0f907f16 100644 --- a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Basic.feature +++ b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Basic.feature @@ -33,9 +33,9 @@ Feature: Basic routing functionality (match & resolve document nodes in one dime | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.Neos:Sites" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.Neos:Sites" | # lady-eleonode-rootford # shernode-homes diff --git a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/DimensionResolution/UriPathResolver.feature b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/DimensionResolution/UriPathResolver.feature index 84076541ffd..aeb9ab94b0a 100644 --- a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/DimensionResolution/UriPathResolver.feature +++ b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/DimensionResolution/UriPathResolver.feature @@ -391,8 +391,8 @@ Feature: UriPathResolver works as expected Scenario: Error: non-existing dimension name Given I change the content dimensions in content repository "default" to: - | Identifier | Values | Generalizations | - | language | en, de | | + | Identifier | Values | Generalizations | + | language | en, de | | When I am on URL "/" And I invoke the Dimension Resolver from site configuration and exceptions are caught: @@ -410,8 +410,8 @@ Feature: UriPathResolver works as expected Scenario: Error: non-existing dimension value Given I change the content dimensions in content repository "default" to: - | Identifier | Values | Generalizations | - | language | en, de | | + | Identifier | Values | Generalizations | + | language | en, de | | When I am on URL "/" And I invoke the Dimension Resolver from site configuration and exceptions are caught: @@ -431,8 +431,8 @@ Feature: UriPathResolver works as expected Scenario: Error: / in dimensionValueMapping Given I change the content dimensions in content repository "default" to: - | Identifier | Values | Generalizations | - | language | en, de | | + | Identifier | Values | Generalizations | + | language | en, de | | When I am on URL "/" And I invoke the Dimension Resolver from site configuration and exceptions are caught: @@ -453,8 +453,8 @@ Feature: UriPathResolver works as expected Scenario: Error: / as separator Given I change the content dimensions in content repository "default" to: - | Identifier | Values | Generalizations | - | language | en, de | | + | Identifier | Values | Generalizations | + | language | en, de | | When I am on URL "/" And I invoke the Dimension Resolver from site configuration and exceptions are caught: @@ -476,8 +476,8 @@ Feature: UriPathResolver works as expected Scenario: Error: separator in dimensionValueMapping Given I change the content dimensions in content repository "default" to: - | Identifier | Values | Generalizations | - | language | en, de | | + | Identifier | Values | Generalizations | + | language | en, de | | When I am on URL "/" And I invoke the Dimension Resolver from site configuration and exceptions are caught: diff --git a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Dimensions.feature b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Dimensions.feature index 020923121dd..0291ba17882 100644 --- a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Dimensions.feature +++ b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Dimensions.feature @@ -45,9 +45,9 @@ Feature: Routing functionality with multiple content dimensions | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {"market":"DE", "language":"en"} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.Neos:Sites" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.Neos:Sites" | And the following CreateNodeAggregateWithNode commands are executed: | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | | sir-david-nodenborough | lady-eleonode-rootford | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "ignore-me"} | node1 | diff --git a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/DisableNodes.feature b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/DisableNodes.feature index b05e38da33d..aa2e9e2f029 100644 --- a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/DisableNodes.feature +++ b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/DisableNodes.feature @@ -68,10 +68,10 @@ Feature: Routing behavior of removed, disabled and re-enabled nodes Scenario: Disable leaf node When the command DisableNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "leaf-mc-node" | - | coveredDimensionSpacePoint | {} | - | nodeVariantSelectionStrategy | "allVariants" | + | Key | Value | + | nodeAggregateId | "leaf-mc-node" | + | coveredDimensionSpacePoint | {} | + | nodeVariantSelectionStrategy | "allVariants" | Then No node should match URL "/david-nodenborough/earl-document/leaf" And The node "leaf-mc-node" in content stream "cs-identifier" and dimension "{}" should resolve to URL "/david-nodenborough/earl-document/leaf" @@ -146,7 +146,7 @@ Feature: Routing behavior of removed, disabled and re-enabled nodes And the event SubtreeWasTagged was published with payload: | Key | Value | | workspaceName | "live" | - | contentStreamId | "cs-identifier" | + | contentStreamId | "cs-identifier" | | nodeAggregateId | "sir-david-nodenborough" | | affectedDimensionSpacePoints | [{}] | | tag | "disabled" | diff --git a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Lowlevel_ProjectionTests.feature b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Lowlevel_ProjectionTests.feature index 7e64e235cc5..c7975f112a8 100644 --- a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Lowlevel_ProjectionTests.feature +++ b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Lowlevel_ProjectionTests.feature @@ -41,9 +41,9 @@ Feature: Low level tests covering the inner behavior of the routing projection | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.Neos:Sites" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.Neos:Sites" | And the following CreateNodeAggregateWithNode commands are executed: | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | @@ -64,11 +64,11 @@ Feature: Low level tests covering the inner behavior of the routing projection Scenario: abc => acb (moving b) When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "b" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | null | - | newSucceedingSiblingNodeAggregateId | null | + | Key | Value | + | nodeAggregateId | "b" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | null | + | newSucceedingSiblingNodeAggregateId | null | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -79,11 +79,11 @@ Feature: Low level tests covering the inner behavior of the routing projection Scenario: abc => acb (moving c) When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "c" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | null | - | newSucceedingSiblingNodeAggregateId | "b" | + | Key | Value | + | nodeAggregateId | "c" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | null | + | newSucceedingSiblingNodeAggregateId | "b" | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -94,11 +94,11 @@ Feature: Low level tests covering the inner behavior of the routing projection Scenario: abc => bac (moving b) When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "b" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | null | - | newSucceedingSiblingNodeAggregateId | "a" | + | Key | Value | + | nodeAggregateId | "b" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | null | + | newSucceedingSiblingNodeAggregateId | "a" | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -109,11 +109,11 @@ Feature: Low level tests covering the inner behavior of the routing projection Scenario: abc => bac (moving a) When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "a" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | null | - | newSucceedingSiblingNodeAggregateId | "c" | + | Key | Value | + | nodeAggregateId | "a" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | null | + | newSucceedingSiblingNodeAggregateId | "c" | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -124,11 +124,11 @@ Feature: Low level tests covering the inner behavior of the routing projection Scenario: abc => bca (moving a) When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "a" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | null | - | newSucceedingSiblingNodeAggregateId | null | + | Key | Value | + | nodeAggregateId | "a" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | null | + | newSucceedingSiblingNodeAggregateId | null | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -139,17 +139,17 @@ Feature: Low level tests covering the inner behavior of the routing projection Scenario: abc => bca (moving b and c) When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "b" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | null | - | newSucceedingSiblingNodeAggregateId | "a" | + | Key | Value | + | nodeAggregateId | "b" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | null | + | newSucceedingSiblingNodeAggregateId | "a" | And the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "c" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | null | - | newSucceedingSiblingNodeAggregateId | "a" | + | Key | Value | + | nodeAggregateId | "c" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | null | + | newSucceedingSiblingNodeAggregateId | "a" | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -160,11 +160,11 @@ Feature: Low level tests covering the inner behavior of the routing projection Scenario: abc => a(> b)c (moving b below a) When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "b" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | "a" | - | newSucceedingSiblingNodeAggregateId | null | + | Key | Value | + | nodeAggregateId | "b" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | "a" | + | newSucceedingSiblingNodeAggregateId | null | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -183,11 +183,11 @@ Feature: Low level tests covering the inner behavior of the routing projection | initialPropertyValues | {"uriPathSegment": "b1"} | | succeedingSiblingNodeAggregateId | null | And the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "b" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | "a" | - | newSucceedingSiblingNodeAggregateId | null | + | Key | Value | + | nodeAggregateId | "b" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | "a" | + | newSucceedingSiblingNodeAggregateId | null | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -207,11 +207,11 @@ Feature: Low level tests covering the inner behavior of the routing projection | initialPropertyValues | {"uriPathSegment": "b1"} | | succeedingSiblingNodeAggregateId | null | And the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "b1" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | "a" | - | newSucceedingSiblingNodeAggregateId | null | + | Key | Value | + | nodeAggregateId | "b1" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | "a" | + | newSucceedingSiblingNodeAggregateId | null | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -229,11 +229,11 @@ Feature: Low level tests covering the inner behavior of the routing projection | b2 | b | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "b2"} | b2 | | b2a | b2 | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "b2a"} | b2a | When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "b2" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | "a" | - | newSucceedingSiblingNodeAggregateId | null | + | Key | Value | + | nodeAggregateId | "b2" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | "a" | + | newSucceedingSiblingNodeAggregateId | null | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | @@ -253,11 +253,11 @@ Feature: Low level tests covering the inner behavior of the routing projection | b2 | b | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "b2"} | b2 | | b2a | b2 | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "b2a"} | b2a | When the command MoveNodeAggregate is executed with payload: - | Key | Value | - | nodeAggregateId | "a" | - | dimensionSpacePoint | {} | - | newParentNodeAggregateId | "b" | - | newSucceedingSiblingNodeAggregateId | "b2" | + | Key | Value | + | nodeAggregateId | "a" | + | dimensionSpacePoint | {} | + | newParentNodeAggregateId | "b" | + | newSucceedingSiblingNodeAggregateId | "b2" | Then I expect the documenturipath table to contain exactly: | uripath | nodeaggregateidpath | nodeaggregateid | parentnodeaggregateid | precedingnodeaggregateid | succeedingnodeaggregateid | nodetypename | | "" | "lady-eleonode-rootford" | "lady-eleonode-rootford" | null | null | null | "Neos.Neos:Sites" | diff --git a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/MultiSiteLinking.feature b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/MultiSiteLinking.feature index bef76957eb9..6470740c56b 100644 --- a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/MultiSiteLinking.feature +++ b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/MultiSiteLinking.feature @@ -41,9 +41,9 @@ Feature: Linking between multiple websites | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.Neos:Sites" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.Neos:Sites" | # lady-eleonode-rootford # shernode-homes @@ -52,7 +52,7 @@ Feature: Linking between multiple websites # earl-o-documentbourgh # And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | + | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | | homepage1 | lady-eleonode-rootford | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "ignore-me"} | site-1 | | sir-david-nodenborough | homepage1 | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "david-nodenborough"} | node2 | | homepage2 | lady-eleonode-rootford | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "ignore-me"} | site-2 | diff --git a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Shortcuts.feature b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Shortcuts.feature index f99ca13c2aa..71cef54733a 100644 --- a/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Shortcuts.feature +++ b/Neos.Neos/Tests/Behavior/Features/FrontendRouting/Shortcuts.feature @@ -49,9 +49,9 @@ Feature: Routing behavior of shortcut nodes | newContentStreamId | "cs-identifier" | And I am in workspace "live" and dimension space point {} And the command CreateRootNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "lady-eleonode-rootford" | - | nodeTypeName | "Neos.Neos:Sites" | + | Key | Value | + | nodeAggregateId | "lady-eleonode-rootford" | + | nodeTypeName | "Neos.Neos:Sites" | # lady-eleonode-rootford # shernode-homes @@ -67,17 +67,17 @@ Feature: Routing behavior of shortcut nodes # sir-nodeward-nodington-iii # And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | + | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | | shernode-homes | lady-eleonode-rootford | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "ignore-me"} | node1 | | sir-david-nodenborough | shernode-homes | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "david-nodenborough"} | node2 | | shortcuts | sir-david-nodenborough | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "shortcuts"} | node3 | - | shortcut-first-child-node | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-first-child", "targetMode": "firstChildNode"} | node4 | + | shortcut-first-child-node | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-first-child", "targetMode": "firstChildNode"} | node4 | | first-child-node | shortcut-first-child-node | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "first-child-node"} | node5 | | second-child-node | shortcut-first-child-node | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "second-child-node"} | node6 | - | shortcut-parent-node | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-parent-node", "targetMode": "parentNode"} | node7 | - | shortcut-selected-node | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-selected-node", "targetMode": "selectedTarget", "target": "node://sir-nodeward-nodington-iii"} | node8 | - | shortcut-selected-asset | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-selected-asset", "targetMode": "selectedTarget", "target": "asset://some-asset"} | node9 | - | shortcut-external-url | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-external-url", "targetMode": "selectedTarget", "target": "https://neos.io"} | node10 | + | shortcut-parent-node | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-parent-node", "targetMode": "parentNode"} | node7 | + | shortcut-selected-node | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-selected-node", "targetMode": "selectedTarget", "target": "node://sir-nodeward-nodington-iii"} | node8 | + | shortcut-selected-asset | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-selected-asset", "targetMode": "selectedTarget", "target": "asset://some-asset"} | node9 | + | shortcut-external-url | shortcuts | Neos.Neos:Shortcut | {"uriPathSegment": "shortcut-external-url", "targetMode": "selectedTarget", "target": "https://neos.io"} | node10 | | sir-david-nodenborough-ii | shernode-homes | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "david-nodenborough-2"} | node11 | | sir-nodeward-nodington-iii | sir-david-nodenborough-ii | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "nodeward-3"} | node12 | And A site exists for node name "node1" @@ -135,13 +135,13 @@ Feature: Routing behavior of shortcut nodes Scenario: Shortcut first child node is updated when a new first child node aggregate is created When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-newface" | - | nodeTypeName | "Neos.Neos:Test.Routing.Page" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "shortcut-first-child-node" | - | initialPropertyValues | {"uriPathSegment": "new-child-node"} | - | succeedingSiblingNodeAggregateId | "first-child-node" | + | Key | Value | + | nodeAggregateId | "nody-mc-newface" | + | nodeTypeName | "Neos.Neos:Test.Routing.Page" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "shortcut-first-child-node" | + | initialPropertyValues | {"uriPathSegment": "new-child-node"} | + | succeedingSiblingNodeAggregateId | "first-child-node" | When I am on URL "/" Then the node "shortcut-first-child-node" in content stream "cs-identifier" and dimension "{}" should resolve to URL "/david-nodenborough/shortcuts/shortcut-first-child/new-child-node" @@ -177,13 +177,13 @@ Feature: Routing behavior of shortcut nodes Scenario: Shortcut first child node is not updated when a node aggregate gets moved behind an existing first child node on the same leve When the command CreateNodeAggregateWithNode is executed with payload: - | Key | Value | - | nodeAggregateId | "nody-mc-newface" | - | nodeTypeName | "Neos.Neos:Test.Routing.Page" | - | originDimensionSpacePoint | {} | - | parentNodeAggregateId | "shortcut-first-child-node" | - | initialPropertyValues | {"uriPathSegment": "new-child-node"} | - | succeedingSiblingNodeAggregateId | "second-child-node" | + | Key | Value | + | nodeAggregateId | "nody-mc-newface" | + | nodeTypeName | "Neos.Neos:Test.Routing.Page" | + | originDimensionSpacePoint | {} | + | parentNodeAggregateId | "shortcut-first-child-node" | + | initialPropertyValues | {"uriPathSegment": "new-child-node"} | + | succeedingSiblingNodeAggregateId | "second-child-node" | And the command MoveNodeAggregate is executed with payload: | Key | Value | | nodeAggregateId | "nody-mc-newface" | @@ -204,10 +204,10 @@ Feature: Routing behavior of shortcut nodes Scenario: Shortcut node gets turned into a regular document node When the command ChangeNodeAggregateType was published with payload: - | Key | Value | - | nodeAggregateId | "shortcut-first-child-node" | + | Key | Value | + | nodeAggregateId | "shortcut-first-child-node" | | newNodeTypeName | "Neos.Neos:Test.Routing.Page" | - | strategy | "happypath" | + | strategy | "happypath" | When I am on URL "/" Then the node "shortcut-first-child-node" in content stream "cs-identifier" and dimension "{}" should resolve to URL "/david-nodenborough/shortcuts/shortcut-first-child" @@ -232,7 +232,7 @@ Feature: Routing behavior of shortcut nodes Scenario: Change shortcut targetMode from "parentNode" to "firstChildNode" And I am in workspace "live" and dimension space point {} When the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | + | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | | new-child-node | shortcut-parent-node | Neos.Neos:Test.Routing.Page | {"uriPathSegment": "new-child"} | new | When the command SetNodeProperties is executed with payload: | Key | Value | diff --git a/Neos.Neos/Tests/Behavior/Features/Fusion/ContentCache.feature b/Neos.Neos/Tests/Behavior/Features/Fusion/ContentCache.feature index bc0c4c68455..9288e9ea42d 100644 --- a/Neos.Neos/Tests/Behavior/Features/Fusion/ContentCache.feature +++ b/Neos.Neos/Tests/Behavior/Features/Fusion/ContentCache.feature @@ -1,5 +1,6 @@ @flowEntities @contentrepository Feature: Tests for Fusion ContentCache + Background: Given I have Fusion content cache enabled And I have the following Fusion setup: @@ -63,4 +64,4 @@ Feature: Tests for Fusion ContentCache Then I expect the following Fusion rendering result: """ some-new-string - """ \ No newline at end of file + """ diff --git a/Neos.Neos/Tests/Behavior/Features/Fusion/ContentCase.feature b/Neos.Neos/Tests/Behavior/Features/Fusion/ContentCase.feature index 98b99c8429c..bba9fd5dcde 100644 --- a/Neos.Neos/Tests/Behavior/Features/Fusion/ContentCase.feature +++ b/Neos.Neos/Tests/Behavior/Features/Fusion/ContentCase.feature @@ -39,9 +39,9 @@ Feature: Tests for the "Neos.Neos:ContentCase" Fusion prototype | nodeAggregateId | "root" | | nodeTypeName | "Neos.Neos:Sites" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | parentNodeAggregateId | nodeTypeName | - | a | root | Neos.Neos:Site | - | a1 | a | Neos.Neos:Test.DocumentType2 | + | nodeAggregateId | parentNodeAggregateId | nodeTypeName | + | a | root | Neos.Neos:Site | + | a1 | a | Neos.Neos:Test.DocumentType2 | And A site exists for node name "a" and domain "http://localhost" And the sites configuration is: """yaml diff --git a/Neos.Neos/Tests/Behavior/Features/Fusion/ConvertUris.feature b/Neos.Neos/Tests/Behavior/Features/Fusion/ConvertUris.feature index 976d642c0ef..4aee9e82b50 100644 --- a/Neos.Neos/Tests/Behavior/Features/Fusion/ConvertUris.feature +++ b/Neos.Neos/Tests/Behavior/Features/Fusion/ConvertUris.feature @@ -37,9 +37,9 @@ Feature: Tests for the "Neos.Neos:ConvertUris" Fusion prototype | nodeTypeName | "Neos.Neos:Sites" | And I am in content stream "cs-identifier" and dimension space point {} And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | parentNodeAggregateId | nodeTypeName |initialPropertyValues | nodeName | - | a | root | Neos.Neos:Site |{"title": "Node a"} | a | - | a1 | a | Neos.Neos:Test.DocumentType |{"uriPathSegment": "a1", "title": "Node a1"} | a1 | + | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | + | a | root | Neos.Neos:Site | {"title": "Node a"} | a | + | a1 | a | Neos.Neos:Test.DocumentType | {"uriPathSegment": "a1", "title": "Node a1"} | a1 | And A site exists for node name "a" and domain "http://localhost" And the sites configuration is: """yaml @@ -56,6 +56,7 @@ Feature: Tests for the "Neos.Neos:ConvertUris" Fusion prototype And the Fusion context node is "a" And the Fusion context request URI is "http://localhost" And the Fusion renderingMode is "frontend" + Scenario: Default output When I execute the following Fusion code: """fusion diff --git a/Neos.Neos/Tests/Behavior/Features/Fusion/FlowQuery.feature b/Neos.Neos/Tests/Behavior/Features/Fusion/FlowQuery.feature index 8711a7d6269..6e1c2effe20 100644 --- a/Neos.Neos/Tests/Behavior/Features/Fusion/FlowQuery.feature +++ b/Neos.Neos/Tests/Behavior/Features/Fusion/FlowQuery.feature @@ -53,25 +53,25 @@ Feature: Tests for the "Neos.ContentRepository" Flow Query methods. | nodeTypeName | "Neos.Neos:Sites" | And I am in content stream "cs-identifier" and dimension space point {} And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | - | a | root | Neos.Neos:Site | {"title": "Node a"} | a | - | a1 | a | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1", "title": "Node a1"} | a1 | - | a1a | a1 | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a", "title": "Node a1a"} | a1a | - | a1a1 | a1a | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1a1", "title": "Node a1a1"} | a1a1 | - | a1a2 | a1a | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a1a2", "title": "Node a1a2"} | a1a2 | - | a1a3 | a1a | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a3", "title": "Node a1a3"} | a1a3 | - | a1a4 | a1a | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a4", "title": "Node a1a4"} | a1a4 | - | a1a5 | a1a | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a5", "title": "Node a1a5"} | a1a5 | - | a1a6 | a1a | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a1a6", "title": "Node a1a6"} | a1a6 | - | a1a7 | a1a | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1a7", "title": "Node a1a7"} | a1a7 | - | a1b | a1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b", "title": "Node a1b"} | a1b | - | a1b1 | a1b | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b1", "title": "Node a1b1"} | a1b1 | - | a1b1a | a1b1 | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1b1a", "title": "Node a1b1a"} | a1b1a | - | a1b1b | a1b1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b1b", "title": "Node a1b1b"} | a1b1b | - | a1b2 | a1b | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a1b2", "title": "Node a1b2"} | a1b2 | - | a1b3 | a1b | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b3", "title": "Node a1b3"} | a1b3 | + | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | + | a | root | Neos.Neos:Site | {"title": "Node a"} | a | + | a1 | a | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1", "title": "Node a1"} | a1 | + | a1a | a1 | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a", "title": "Node a1a"} | a1a | + | a1a1 | a1a | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1a1", "title": "Node a1a1"} | a1a1 | + | a1a2 | a1a | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a1a2", "title": "Node a1a2"} | a1a2 | + | a1a3 | a1a | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a3", "title": "Node a1a3"} | a1a3 | + | a1a4 | a1a | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a4", "title": "Node a1a4"} | a1a4 | + | a1a5 | a1a | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a5", "title": "Node a1a5"} | a1a5 | + | a1a6 | a1a | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a1a6", "title": "Node a1a6"} | a1a6 | + | a1a7 | a1a | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1a7", "title": "Node a1a7"} | a1a7 | + | a1b | a1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b", "title": "Node a1b"} | a1b | + | a1b1 | a1b | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b1", "title": "Node a1b1"} | a1b1 | + | a1b1a | a1b1 | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1b1a", "title": "Node a1b1a"} | a1b1a | + | a1b1b | a1b1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b1b", "title": "Node a1b1b"} | a1b1b | + | a1b2 | a1b | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a1b2", "title": "Node a1b2"} | a1b2 | + | a1b3 | a1b | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b3", "title": "Node a1b3"} | a1b3 | | a1c | a1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1c", "title": "Node a1c", "hiddenInMenu": true} | a1c | - | a1c1 | a1c | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1c1", "title": "Node a1c1"} | a1c1 | + | a1c1 | a1c | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1c1", "title": "Node a1c1"} | a1c1 | And A site exists for node name "a" and domain "http://localhost" And the sites configuration is: """yaml @@ -274,6 +274,7 @@ Feature: Tests for the "Neos.ContentRepository" Flow Query methods. matchingFilter: a1a5 nonMatchingFilter: """ + Scenario: PrevAll When I execute the following Fusion code: """fusion diff --git a/Neos.Neos/Tests/Behavior/Features/Fusion/Menu.feature b/Neos.Neos/Tests/Behavior/Features/Fusion/Menu.feature index b63cfe9adf6..895450837c1 100644 --- a/Neos.Neos/Tests/Behavior/Features/Fusion/Menu.feature +++ b/Neos.Neos/Tests/Behavior/Features/Fusion/Menu.feature @@ -52,18 +52,18 @@ Feature: Tests for the "Neos.Neos:Menu" and related Fusion prototypes | nodeAggregateId | "root" | | nodeTypeName | "Neos.Neos:Sites" | And the following CreateNodeAggregateWithNode commands are executed: - | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | - | a | root | Neos.Neos:Site | {"title": "Node a"} | a | - | a1 | a | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1", "title": "Node a1"} | a1 | - | a1a | a1 | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a", "title": "Node a1a"} | a1a | - | a1b | a1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b", "title": "Node a1b"} | a1b | - | a1b1 | a1b | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b1", "title": "Node a1b1"} | a1b1 | - | a1b1a | a1b1 | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1b1a", "title": "Node a1b1a"} | a1b1a | - | a1b1b | a1b1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b1b", "title": "Node a1b1b"} | a1b1b | - | a1b2 | a1b | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a1b2", "title": "Node a1b2"} | a1b2 | - | a1b3 | a1b | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b3", "title": "Node a1b3"} | a1b3 | + | nodeAggregateId | parentNodeAggregateId | nodeTypeName | initialPropertyValues | nodeName | + | a | root | Neos.Neos:Site | {"title": "Node a"} | a | + | a1 | a | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1", "title": "Node a1"} | a1 | + | a1a | a1 | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1a", "title": "Node a1a"} | a1a | + | a1b | a1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b", "title": "Node a1b"} | a1b | + | a1b1 | a1b | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b1", "title": "Node a1b1"} | a1b1 | + | a1b1a | a1b1 | Neos.Neos:Test.DocumentType2a | {"uriPathSegment": "a1b1a", "title": "Node a1b1a"} | a1b1a | + | a1b1b | a1b1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b1b", "title": "Node a1b1b"} | a1b1b | + | a1b2 | a1b | Neos.Neos:Test.DocumentType2 | {"uriPathSegment": "a1b2", "title": "Node a1b2"} | a1b2 | + | a1b3 | a1b | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1b3", "title": "Node a1b3"} | a1b3 | | a1c | a1 | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1c", "title": "Node a1c", "hiddenInMenu": true} | a1c | - | a1c1 | a1c | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1c1", "title": "Node a1c1"} | a1c1 | + | a1c1 | a1c | Neos.Neos:Test.DocumentType1 | {"uriPathSegment": "a1c1", "title": "Node a1c1"} | a1c1 | And A site exists for node name "a" and domain "http://localhost" And the sites configuration is: """yaml