@specsafe/test-gen 0.3.6 → 0.4.0

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.
package/dist/parser.d.ts CHANGED
@@ -2,12 +2,12 @@
2
2
  * Scenario Parser
3
3
  * Extracts scenarios from spec markdown files
4
4
  */
5
- import type { Requirement } from '@specsafe/core';
5
+ import type { Requirement, Scenario } from '@specsafe/core';
6
6
  export declare class ScenarioParser {
7
7
  /**
8
8
  * Parse requirements from spec text
9
9
  */
10
10
  parseRequirements(text: string): Requirement[];
11
- private parseScenarios;
11
+ parseScenarios(text: string, startIndex?: number): Scenario[];
12
12
  }
13
13
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,gBAAgB,CAAC;AAE5D,qBAAa,cAAc;IACzB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IAsB9C,OAAO,CAAC,cAAc;CAyBvB"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qBAAa,cAAc;IACzB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IAsB9C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,QAAQ,EAAE;CAyBjE"}
package/dist/parser.js CHANGED
@@ -23,7 +23,7 @@ export class ScenarioParser {
23
23
  }
24
24
  return requirements;
25
25
  }
26
- parseScenarios(text, startIndex) {
26
+ parseScenarios(text, startIndex = 0) {
27
27
  const scenarios = [];
28
28
  // Find scenario table after requirement, bounded by next requirement or end of text
29
29
  const nextReqMatch = text.slice(startIndex + 1).search(/###\s+Requirement:/);
@@ -38,7 +38,7 @@ export class ScenarioParser {
38
38
  id: `SC-${index++}`,
39
39
  given: given.trim(),
40
40
  when: when.trim(),
41
- then: then.trim()
41
+ thenOutcome: then.trim()
42
42
  });
43
43
  }
44
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,iBAAiB,CAAC,IAAY;QAC5B,iEAAiE;QACjE,MAAM,YAAY,GAAkB,EAAE,CAAC;QAEvC,4BAA4B;QAC5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;QAEvE,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAE9D,YAAY,CAAC,IAAI,CAAC;gBAChB,EAAE,EAAE,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,IAAI;gBACd,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,UAAkB;QACrD,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,oFAAoF;QACpF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjD,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC;QAE7F,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;YACpC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;gBACtD,SAAS,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE;oBACnB,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,iBAAiB,CAAC,IAAY;QAC5B,iEAAiE;QACjE,MAAM,YAAY,GAAkB,EAAE,CAAC;QAEvC,4BAA4B;QAC5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;QAEvE,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAE9D,YAAY,CAAC,IAAI,CAAC;gBAChB,EAAE,EAAE,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,IAAI;gBACd,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,cAAc,CAAC,IAAY,EAAE,aAAqB,CAAC;QACjD,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,oFAAoF;QACpF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjD,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC;QAE7F,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;YACpC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;gBACtD,SAAS,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE;oBACnB,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBACjB,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -36,7 +36,7 @@ export class TypeScriptTestGenerator {
36
36
  generateTest(scenario) {
37
37
  const testName = this.escapeString(this.scenarioToTestName(scenario));
38
38
  const comments = this.options.includeComments
39
- ? ` // GIVEN: ${scenario.given}\n // WHEN: ${scenario.when}\n // THEN: ${scenario.then}\n`
39
+ ? ` // GIVEN: ${scenario.given}\n // WHEN: ${scenario.when}\n // THEN: ${scenario.thenOutcome}\n`
40
40
  : '';
41
41
  const body = this.options.generatePlaceholders
42
42
  ? ` expect(true).toBe(true); // TODO: Implement test`
@@ -45,7 +45,7 @@ export class TypeScriptTestGenerator {
45
45
  }
46
46
  scenarioToTestName(scenario) {
47
47
  // Convert scenario to readable test name, preserving original case
48
- return scenario.then
48
+ return scenario.thenOutcome
49
49
  .replace(/^then\s+/i, '')
50
50
  .replace(/\.$/, '');
51
51
  }
@@ -71,7 +71,7 @@ export class TypeScriptTestGenerator {
71
71
  id: `SC-${scenarios.length + 1}`,
72
72
  given: match[1].trim(),
73
73
  when: match[2].trim(),
74
- then: match[3].trim()
74
+ thenOutcome: match[3].trim()
75
75
  });
76
76
  }
77
77
  return scenarios;
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specsafe/test-gen",
3
- "version": "0.3.6",
3
+ "version": "0.4.0",
4
4
  "description": "Test generators for SpecSafe",
5
5
  "type": "module",
6
6
  "engines": {
@@ -23,7 +23,7 @@
23
23
  "access": "public"
24
24
  },
25
25
  "dependencies": {
26
- "@specsafe/core": "0.3.6"
26
+ "@specsafe/core": "0.4.0"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/node": "^20.0.0",