@step-forge/step-forge 0.0.6 → 0.0.7-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/step-forge.js +212 -0
  2. package/package.json +9 -8
  3. package/.eslintignore +0 -6
  4. package/.eslintrc +0 -18
  5. package/.prettierignore +0 -6
  6. package/.prettierrc +0 -15
  7. package/CHANGELOG.md +0 -28
  8. package/cucumber.mjs +0 -38
  9. package/docs/assets/state_deps.gif +0 -0
  10. package/dts-bundle-generator.config.ts +0 -11
  11. package/features/basic.feature +0 -21
  12. package/features/exported.feature +0 -6
  13. package/features/steps/commonSteps.ts +0 -93
  14. package/features/steps/exportedSteps.ts +0 -42
  15. package/features/steps/world.ts +0 -29
  16. package/src/builderTypeUtils.js +0 -2
  17. package/src/builderTypeUtils.js.map +0 -1
  18. package/src/builderTypeUtils.ts +0 -27
  19. package/src/common.js +0 -73
  20. package/src/common.js.map +0 -1
  21. package/src/common.ts +0 -138
  22. package/src/given.js +0 -34
  23. package/src/given.js.map +0 -1
  24. package/src/given.ts +0 -102
  25. package/src/index.js +0 -6
  26. package/src/index.js.map +0 -1
  27. package/src/index.ts +0 -6
  28. package/src/then.js +0 -34
  29. package/src/then.js.map +0 -1
  30. package/src/then.ts +0 -128
  31. package/src/utils.js +0 -54
  32. package/src/utils.js.map +0 -1
  33. package/src/utils.ts +0 -74
  34. package/src/vite-env.d.ts.old +0 -1
  35. package/src/when.js +0 -34
  36. package/src/when.js.map +0 -1
  37. package/src/when.ts +0 -118
  38. package/src/world.js +0 -51
  39. package/src/world.js.map +0 -1
  40. package/src/world.ts +0 -90
  41. package/test/givenCompilationTests.ts +0 -130
  42. package/test/testUtils.ts +0 -30
  43. package/test/thenCompilationTests.ts +0 -207
  44. package/test/whenCompilationTests.ts +0 -157
  45. package/ts-node-esm-register.js +0 -8
  46. package/tsconfig.cucumber.json +0 -23
  47. package/tsconfig.json +0 -28
  48. package/vite.config.ts +0 -36
@@ -1,157 +0,0 @@
1
- import { whenBuilder } from "../src/when";
2
- import { SampleGivenState, SampleWhenState } from "./testUtils";
3
-
4
- // Simplest possible example
5
- whenBuilder<SampleGivenState, SampleWhenState>()
6
- .statement("When a user does something")
7
- .step(() => {
8
- return {
9
- e: "action",
10
- };
11
- });
12
-
13
- // Simple dependency on given state example
14
- whenBuilder<SampleGivenState, SampleWhenState>()
15
- .statement("When a user does something")
16
- .dependencies({
17
- given: {
18
- a: "required",
19
- },
20
- })
21
- .step(({ given }) => {
22
- return {
23
- e: `Action with ${given.a}`,
24
- };
25
- });
26
-
27
- // Simple dependency on when state example
28
- whenBuilder<SampleGivenState, SampleWhenState>()
29
- .statement("When a user does something")
30
- .dependencies({
31
- when: {
32
- d: "required",
33
- },
34
- })
35
- .step(({ when }) => {
36
- return {
37
- e: `Action with ${when.d}`,
38
- };
39
- });
40
-
41
- // Simple variables example
42
- whenBuilder<SampleGivenState, SampleWhenState>()
43
- .statement((v1: string, v2: number) => `When a user does ${v1} ${v2} times`)
44
- .step(({ variables: [v1, v2] }) => {
45
- return {
46
- e: `Action ${v1} ${v2}`,
47
- };
48
- });
49
-
50
- // Complex example with both dependencies
51
- whenBuilder<SampleGivenState, SampleWhenState>()
52
- .statement((v1: string, v2: number) => `When a user does ${v1} ${v2} times`)
53
- .dependencies({
54
- given: {
55
- a: "required",
56
- b: "optional",
57
- },
58
- when: {
59
- d: "required",
60
- e: "optional",
61
- },
62
- })
63
- .step(({ variables: [v1, v2], given: { a, b }, when: { d, e } }) => {
64
- return {
65
- e: `Action ${v1} ${v2} with ${a} ${b} ${d} ${e}`,
66
- };
67
- });
68
-
69
- // ----- Should not compile section ----
70
-
71
- // @ts-expect-error - Should not compile without a statement
72
- whenBuilder<SampleGivenState, SampleWhenState>().step(() => {
73
- return {
74
- a: "action",
75
- };
76
- });
77
-
78
- whenBuilder<SampleGivenState, SampleWhenState>()
79
- .statement(() => "When a user does something")
80
- // @ts-expect-error - Should not compile since no variables are declared
81
- .step(({ variables: [v1, v2] }) => {
82
- return {
83
- a: `Action ${v1} ${v2}`,
84
- };
85
- });
86
-
87
- whenBuilder<SampleGivenState, SampleWhenState>()
88
- .statement("When a user does something")
89
- // @ts-expect-error - Should not compile since no variables are declared
90
- .step(({ variables: [v1, v2] }) => {
91
- return {
92
- a: `Action ${v1} ${v2}`,
93
- };
94
- });
95
-
96
- whenBuilder<SampleGivenState, SampleWhenState>()
97
- .statement(
98
- (v1: string, v2: number, v3: boolean) =>
99
- `When a user does ${v1} ${v2} ${v3}`
100
- )
101
- // @ts-expect-error - Should not compile since the number of variables exceeds the number declared
102
- .step(({ variables: [v1, v2, v3, v4] }) => {
103
- return {
104
- a: `Action ${v1} ${v2} ${v3} ${v4}`,
105
- };
106
- });
107
-
108
- whenBuilder<SampleGivenState, SampleWhenState>()
109
- .statement("When a user does something")
110
- .dependencies({ given: { a: "required" } })
111
- .step(({ given }) => {
112
- return {
113
- // @ts-expect-error - Should not compile if we attempt to access a part of state that was not declared as a dependency
114
- e: `Action ${given.b}`,
115
- };
116
- });
117
-
118
- whenBuilder<SampleGivenState, SampleWhenState>()
119
- .statement("When a user does something")
120
- .dependencies({ when: { d: "required" } })
121
- .step(({ when }) => {
122
- return {
123
- // @ts-expect-error - Should not compile if we attempt to access a part of state that was not declared as a dependency
124
- e: `Action ${when.f}`,
125
- };
126
- });
127
-
128
- whenBuilder<SampleGivenState, SampleWhenState>()
129
- .statement("When a user does something")
130
- .dependencies({ given: { a: "optional" } })
131
- .step(({ given }) => {
132
- // @ts-expect-error - Should not compile since a is optional and can be undefined
133
- const strictA: string = given.a;
134
- return {
135
- e: `Action ${strictA}`,
136
- };
137
- });
138
-
139
- whenBuilder<SampleGivenState, SampleWhenState>()
140
- .statement("When a user does something")
141
- .dependencies({ when: { e: "optional" } })
142
- .step(({ when }) => {
143
- // @ts-expect-error - Should not compile since a is optional and can be undefined
144
- const strictE: string = when.e;
145
- return {
146
- f: [strictE.length],
147
- };
148
- });
149
-
150
- whenBuilder<SampleGivenState, SampleWhenState>()
151
- .statement("When a user does something")
152
- // @ts-expect-error - Should not compile since the return type is not a partial of when state
153
- .step(() => {
154
- return {
155
- a: "hello",
156
- };
157
- });
@@ -1,8 +0,0 @@
1
- import { register } from "ts-node";
2
-
3
- register({
4
- project: "./tsconfig.cucumber.json",
5
- esm: true,
6
- experimentalSpecifierResolution: "node",
7
- transpileOnly: true,
8
- });
@@ -1,23 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "module": "NodeNext",
5
- "moduleResolution": "NodeNext",
6
- "allowJs": true,
7
- "esModuleInterop": true,
8
- "allowImportingTsExtensions": true,
9
- "noEmit": true,
10
- "moduleDetection": "force",
11
- "baseUrl": ".",
12
- "paths": {
13
- "@/*": ["./src/*"],
14
- "@@/*": ["./*"]
15
- }
16
- },
17
- "ts-node": {
18
- "esm": true,
19
- "experimentalSpecifierResolution": "node"
20
- },
21
- "include": ["features/**/*.ts", "src/**/*.ts"],
22
- "exclude": ["node_modules", "src/vite-env.d.ts"]
23
- }
package/tsconfig.json DELETED
@@ -1,28 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "rootDir": ".",
4
- "paths": {
5
- "@/*": ["./src/*"],
6
- "@@/*": ["./*"]
7
- },
8
- "target": "ESNext",
9
- "useDefineForClassFields": true,
10
- "module": "ESNext",
11
- "lib": ["ESNext", "DOM"],
12
- "moduleResolution": "Node",
13
- "strict": true,
14
- "sourceMap": true,
15
- "resolveJsonModule": true,
16
- "esModuleInterop": true,
17
- "noEmit": false,
18
- "noUnusedLocals": true,
19
- "noUnusedParameters": true,
20
- "noImplicitReturns": true,
21
- "forceConsistentCasingInFileNames": true,
22
- "types": ["vite/client", "node"],
23
- "declaration": true,
24
- "declarationDir": "./dist/types"
25
- },
26
- "include": ["src"],
27
- "exclude": ["**/*.test.ts", "node_modules", "test/**", ".history/**"]
28
- }
package/vite.config.ts DELETED
@@ -1,36 +0,0 @@
1
- /// <reference types="vitest" />
2
- import path from "path";
3
- import { defineConfig } from "vite";
4
- import packageJson from "./package.json";
5
-
6
- const getPackageName = () => {
7
- return packageJson.name;
8
- };
9
-
10
- const fileName = {
11
- es: `${getPackageName()}.js`,
12
- };
13
-
14
- const formats = Object.keys(fileName) as Array<keyof typeof fileName>;
15
-
16
- export default defineConfig({
17
- base: "./",
18
- build: {
19
- outDir: "./build/dist",
20
- lib: {
21
- entry: path.resolve(__dirname, "src/index.ts"),
22
- name: `step-forge`,
23
- formats,
24
- fileName: format => fileName[format],
25
- },
26
- },
27
- test: {
28
- watch: false,
29
- },
30
- resolve: {
31
- alias: [
32
- { find: "@", replacement: path.resolve(__dirname, "src") },
33
- { find: "@@", replacement: path.resolve(__dirname) },
34
- ],
35
- },
36
- });