From 4b9e886c579d8e8d8a50f7b0f798ead5420e2bb6 Mon Sep 17 00:00:00 2001 From: bofalke Date: Thu, 28 Mar 2024 09:57:35 +0100 Subject: [PATCH] Add givenIdentifier for feature generation --- package-lock.json | 2 +- packages/be/cucumber.js | 5 +++-- .../features/step_definitions/__feature__Steps.ts__tmpl__ | 2 +- packages/cody/src/lib/hooks/on-feature.ts | 5 ++--- .../files/be/features/__tmpl__.gitignore | 2 ++ 5 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 packages/contribution/src/generators/prepare-contribution/files/be/features/__tmpl__.gitignore diff --git a/package-lock.json b/package-lock.json index 26a7e549..547668b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,7 +93,7 @@ "jest": "^29.4.1", "jest-environment-jsdom": "^29.4.1", "jest-environment-node": "^29.4.1", - "json-schema-to-ts": "^2.8.2", + "json-schema-to-ts": "2.8.2", "jsonc-eslint-parser": "^2.1.0", "nodemon": "^3.0.1", "nx": "16.0.3", diff --git a/packages/be/cucumber.js b/packages/be/cucumber.js index 7667a30f..a56c3830 100644 --- a/packages/be/cucumber.js +++ b/packages/be/cucumber.js @@ -1,9 +1,10 @@ // cucumber.js let common = [ 'features/**/*.feature', // Specify our feature files - '--require-module ts-node/register', //typescript cucumber - '--require-module tsconfig-paths/register', //typescript cucumber + '--require-module ts-node/register', // typescript cucumber + '--require-module tsconfig-paths/register', // typescript cucumber '--require ./features/step_definitions/**/*.ts', // Load step definitions + '--publish-quiet' // Remove publish message from output ].join(' '); process.env['NODE_ENV'] = "test"; diff --git a/packages/cody/src/lib/hooks/behaviour-test-files/features/step_definitions/__feature__Steps.ts__tmpl__ b/packages/cody/src/lib/hooks/behaviour-test-files/features/step_definitions/__feature__Steps.ts__tmpl__ index b38504a1..bfc6db90 100644 --- a/packages/cody/src/lib/hooks/behaviour-test-files/features/step_definitions/__feature__Steps.ts__tmpl__ +++ b/packages/cody/src/lib/hooks/behaviour-test-files/features/step_definitions/__feature__Steps.ts__tmpl__ @@ -35,7 +35,7 @@ class <%= feature %>Steps { let event = <%= givenEvent.propertyName %>(payload); - event = setMessageMetadata(event, AggregateMeta.ID, '<%= expectedIdentifier %>'); + event = setMessageMetadata(event, AggregateMeta.ID, '<%= givenIdentifier %>'); event = setMessageMetadata(event, AggregateMeta.TYPE, '<%= givenAggregateMetaType %>'); event = setMessageMetadata(event, AggregateMeta.VERSION, 1); diff --git a/packages/cody/src/lib/hooks/on-feature.ts b/packages/cody/src/lib/hooks/on-feature.ts index 37745df0..f56e9a93 100644 --- a/packages/cody/src/lib/hooks/on-feature.ts +++ b/packages/cody/src/lib/hooks/on-feature.ts @@ -109,7 +109,6 @@ export const onFeature: CodyHook = async (feature: Node, ctx: Context) } async function createTestFiles(featureName: string, featureMeta: any, givenNodes : Array, whenCommand : Node, thenNodes : Array, ctx: Context): Promise { - // if using a service from another board (e.g. Fleet Management), make sure to set this up in the test feature's metadata! const service = withErrorCheck(detectService, [whenCommand, ctx]); let aggregate: Node | undefined; @@ -136,11 +135,10 @@ async function createTestFiles(featureName: string, featureMeta: any, givenNodes const syncedAggregate = withErrorCheck(getNodeFromSyncedNodes, [aggregate, ctx.syncedNodes]); const aggregateState = withErrorCheck(findAggregateState, [syncedAggregate, ctx]); const aggregateStateMeta = withErrorCheck(getVoMetadata, [aggregateState, ctx]); - const aggregateStateNames = names(aggregateState.getName()); + const givenNodeDescriptionObject = JSON.parse('{'+givenNode.getDescription().replaceAll('\'', '"')+'}'); const thenNode = thenNodes[0]; const body = '{'+thenNode.getDescription().replaceAll('\'', '"')+'}'; - console.log('Json body: '+ body); const thenNodeDescriptionObject = JSON.parse(body); const aggregateIdentifierProperty = aggregateStateMeta.identifier as keyof typeof thenNodeDescriptionObject; @@ -156,6 +154,7 @@ async function createTestFiles(featureName: string, featureMeta: any, givenNodes "when": featureMeta[whenKey], "then": featureMeta[thenKey], "givenEvent": names(givenNode.getName()), + "givenIdentifier": givenNodeDescriptionObject[aggregateIdentifierProperty], "givenAggregateMetaType": givenAggregateMetaType, "whenEvent": names(whenCommand.getName()), "thenEvent": names(thenNodes[0].getName()), diff --git a/packages/contribution/src/generators/prepare-contribution/files/be/features/__tmpl__.gitignore b/packages/contribution/src/generators/prepare-contribution/files/be/features/__tmpl__.gitignore new file mode 100644 index 00000000..8ea9ef6b --- /dev/null +++ b/packages/contribution/src/generators/prepare-contribution/files/be/features/__tmpl__.gitignore @@ -0,0 +1,2 @@ +* +!tsconfig.json