@haibun/core 1.40.9 → 1.41.1-alpha

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 (137) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.d.ts.map +1 -1
  3. package/build/currentVersion.js +1 -2
  4. package/build/currentVersion.js.map +1 -1
  5. package/build/lib/contexts.d.ts +0 -12
  6. package/build/lib/contexts.d.ts.map +1 -1
  7. package/build/lib/contexts.js +1 -22
  8. package/build/lib/contexts.js.map +1 -1
  9. package/build/lib/defs.d.ts +4 -34
  10. package/build/lib/defs.d.ts.map +1 -1
  11. package/build/lib/defs.js +0 -1
  12. package/build/lib/defs.js.map +1 -1
  13. package/build/lib/domain-types.d.ts +14 -0
  14. package/build/lib/domain-types.d.ts.map +1 -0
  15. package/build/lib/domain-types.js +7 -0
  16. package/build/lib/domain-types.js.map +1 -0
  17. package/build/lib/namedVars.d.ts.map +1 -1
  18. package/build/lib/namedVars.js +5 -7
  19. package/build/lib/namedVars.js.map +1 -1
  20. package/build/lib/run-with-options.o.d.ts +2 -0
  21. package/build/lib/run-with-options.o.d.ts.map +1 -0
  22. package/build/lib/run-with-options.o.js +113 -0
  23. package/build/lib/run-with-options.o.js.map +1 -0
  24. package/build/lib/{run.d.ts → run.o.d.ts} +1 -10
  25. package/build/lib/run.o.d.ts.map +1 -0
  26. package/build/lib/{run.js → run.o.js} +7 -16
  27. package/build/lib/run.o.js.map +1 -0
  28. package/build/lib/test/TestStepsWithOptions.js +2 -2
  29. package/build/lib/test/TestStepsWithOptions.js.map +1 -1
  30. package/build/lib/test/lib.d.ts.map +1 -1
  31. package/build/lib/test/lib.js +10 -13
  32. package/build/lib/test/lib.js.map +1 -1
  33. package/build/lib/util/index.d.ts +7 -7
  34. package/build/lib/util/index.d.ts.map +1 -1
  35. package/build/lib/util/index.js +33 -28
  36. package/build/lib/util/index.js.map +1 -1
  37. package/build/lib/util/workspace-lib.js +1 -1
  38. package/build/lib/util/workspace-lib.js.map +1 -1
  39. package/build/phases/Executor.js +1 -1
  40. package/build/phases/Executor.js.map +1 -1
  41. package/build/phases/Resolver.d.ts +1 -4
  42. package/build/phases/Resolver.d.ts.map +1 -1
  43. package/build/phases/Resolver.js +12 -43
  44. package/build/phases/Resolver.js.map +1 -1
  45. package/build/phases/collector.d.ts.map +1 -1
  46. package/build/phases/collector.js.map +1 -1
  47. package/build/runner.d.ts +11 -0
  48. package/build/runner.d.ts.map +1 -0
  49. package/build/runner.js +58 -0
  50. package/build/runner.js.map +1 -0
  51. package/build/steps/haibun.d.ts +0 -9
  52. package/build/steps/haibun.d.ts.map +1 -1
  53. package/build/steps/haibun.js +0 -15
  54. package/build/steps/haibun.js.map +1 -1
  55. package/build/steps/vars.d.ts +0 -4
  56. package/build/steps/vars.d.ts.map +1 -1
  57. package/build/steps/vars.js +4 -21
  58. package/build/steps/vars.js.map +1 -1
  59. package/package.json +1 -1
  60. package/build/lib/Logger.test.d.ts +0 -2
  61. package/build/lib/Logger.test.d.ts.map +0 -1
  62. package/build/lib/Logger.test.js +0 -52
  63. package/build/lib/Logger.test.js.map +0 -1
  64. package/build/lib/domain.d.ts +0 -12
  65. package/build/lib/domain.d.ts.map +0 -1
  66. package/build/lib/domain.js +0 -109
  67. package/build/lib/domain.js.map +0 -1
  68. package/build/lib/features.test.d.ts +0 -2
  69. package/build/lib/features.test.d.ts.map +0 -1
  70. package/build/lib/features.test.js +0 -127
  71. package/build/lib/features.test.js.map +0 -1
  72. package/build/lib/namedVars.test.d.ts +0 -2
  73. package/build/lib/namedVars.test.d.ts.map +0 -1
  74. package/build/lib/namedVars.test.js +0 -111
  75. package/build/lib/namedVars.test.js.map +0 -1
  76. package/build/lib/run-with-options.d.ts +0 -21
  77. package/build/lib/run-with-options.d.ts.map +0 -1
  78. package/build/lib/run-with-options.js +0 -80
  79. package/build/lib/run-with-options.js.map +0 -1
  80. package/build/lib/run.d.ts.map +0 -1
  81. package/build/lib/run.domains.test.d.ts +0 -2
  82. package/build/lib/run.domains.test.d.ts.map +0 -1
  83. package/build/lib/run.domains.test.js +0 -68
  84. package/build/lib/run.domains.test.js.map +0 -1
  85. package/build/lib/run.js.map +0 -1
  86. package/build/lib/run.test.d.ts +0 -2
  87. package/build/lib/run.test.d.ts.map +0 -1
  88. package/build/lib/run.test.js +0 -111
  89. package/build/lib/run.test.js.map +0 -1
  90. package/build/lib/test/TestStepsWithDomain.d.ts +0 -26
  91. package/build/lib/test/TestStepsWithDomain.d.ts.map +0 -1
  92. package/build/lib/test/TestStepsWithDomain.js +0 -14
  93. package/build/lib/test/TestStepsWithDomain.js.map +0 -1
  94. package/build/lib/test/lib.test.d.ts +0 -2
  95. package/build/lib/test/lib.test.d.ts.map +0 -1
  96. package/build/lib/test/lib.test.js +0 -9
  97. package/build/lib/test/lib.test.js.map +0 -1
  98. package/build/lib/util/gwtaRegex.d.ts +0 -2
  99. package/build/lib/util/gwtaRegex.d.ts.map +0 -1
  100. package/build/lib/util/gwtaRegex.js +0 -25
  101. package/build/lib/util/gwtaRegex.js.map +0 -1
  102. package/build/lib/util/util.test.d.ts +0 -2
  103. package/build/lib/util/util.test.d.ts.map +0 -1
  104. package/build/lib/util/util.test.js +0 -322
  105. package/build/lib/util/util.test.js.map +0 -1
  106. package/build/lib/util/workspace-lib.test.d.ts +0 -2
  107. package/build/lib/util/workspace-lib.test.d.ts.map +0 -1
  108. package/build/lib/util/workspace-lib.test.js +0 -20
  109. package/build/lib/util/workspace-lib.test.js.map +0 -1
  110. package/build/phases/Builder.d.ts +0 -17
  111. package/build/phases/Builder.d.ts.map +0 -1
  112. package/build/phases/Builder.js +0 -70
  113. package/build/phases/Builder.js.map +0 -1
  114. package/build/phases/Builder.test.d.ts +0 -2
  115. package/build/phases/Builder.test.d.ts.map +0 -1
  116. package/build/phases/Builder.test.js +0 -32
  117. package/build/phases/Builder.test.js.map +0 -1
  118. package/build/phases/Resolver.domains.test.d.ts +0 -2
  119. package/build/phases/Resolver.domains.test.d.ts.map +0 -1
  120. package/build/phases/Resolver.domains.test.js +0 -74
  121. package/build/phases/Resolver.domains.test.js.map +0 -1
  122. package/build/phases/Resolver.test.d.ts +0 -2
  123. package/build/phases/Resolver.test.d.ts.map +0 -1
  124. package/build/phases/Resolver.test.js +0 -90
  125. package/build/phases/Resolver.test.js.map +0 -1
  126. package/build/phases/collector.test.d.ts +0 -2
  127. package/build/phases/collector.test.d.ts.map +0 -1
  128. package/build/phases/collector.test.js +0 -91
  129. package/build/phases/collector.test.js.map +0 -1
  130. package/build/steps/haibun.test.d.ts +0 -2
  131. package/build/steps/haibun.test.d.ts.map +0 -1
  132. package/build/steps/haibun.test.js +0 -83
  133. package/build/steps/haibun.test.js.map +0 -1
  134. package/build/steps/vars.test.d.ts +0 -2
  135. package/build/steps/vars.test.d.ts.map +0 -1
  136. package/build/steps/vars.test.js +0 -37
  137. package/build/steps/vars.test.js.map +0 -1
@@ -1,90 +0,0 @@
1
- import { describe, it, test, expect } from 'vitest';
2
- import { AStepper, OK } from '../lib/defs.js';
3
- import { getDefaultWorld } from '../lib/test/lib.js';
4
- import { asExpandedFeatures } from '../lib/resolver-features.js';
5
- import TestSteps from '../lib/test/TestSteps.js';
6
- import { createSteppers } from '../lib/util/index.js';
7
- import { Resolver } from './Resolver.js';
8
- describe('resolve steps', () => {
9
- it('resolves steps', async () => {
10
- const features = asExpandedFeatures([{ path: 'l1', content: 'Then it passes' }]);
11
- const steppers = await createSteppers([TestSteps]);
12
- const resolver = new Resolver(steppers, {
13
- ...getDefaultWorld(0).world,
14
- });
15
- const res = await resolver.resolveStepsFromFeatures(features);
16
- expect(res.length).toBe(1);
17
- });
18
- });
19
- describe('validate map steps', () => {
20
- class TestStepper extends AStepper {
21
- steps = {
22
- exact: {
23
- exact: 'exact1',
24
- action: async () => OK,
25
- },
26
- match: {
27
- match: /match(?<num>1)/,
28
- action: async () => OK,
29
- },
30
- gwta: {
31
- gwta: 'gwta(?<num>.)',
32
- action: async () => OK,
33
- },
34
- gwtaInterpolated: {
35
- gwta: 'is {what}',
36
- action: async () => OK,
37
- },
38
- };
39
- }
40
- const getResolvedSteps = async (features) => {
41
- const steppers = await createSteppers([TestStepper]);
42
- const resolver = new Resolver(steppers, {
43
- ...getDefaultWorld(0).world,
44
- });
45
- return await resolver.resolveStepsFromFeatures(features);
46
- };
47
- describe('exact', () => {
48
- test('exact', async () => {
49
- const features = asExpandedFeatures([{ path: 'l1', content: `exact1` }]);
50
- const res = await getResolvedSteps(features);
51
- const { vsteps } = res[0];
52
- expect(vsteps[0].actions[0].named).toBeUndefined();
53
- });
54
- });
55
- describe('match', () => {
56
- test('match', async () => {
57
- const features = asExpandedFeatures([{ path: 'l1', content: `match1` }]);
58
- const res = await getResolvedSteps(features);
59
- const { vsteps } = res[0];
60
- expect(vsteps[0].actions[0].named).toEqual({ num: '1' });
61
- });
62
- });
63
- describe('gwta regex', () => {
64
- test('gwta', async () => {
65
- const features = asExpandedFeatures([{ path: 'l1', content: `gwta2\nGiven I'm gwta3\nWhen I am gwta4\nGwta5\nThen the gwta6` }]);
66
- const res = await getResolvedSteps(features);
67
- const { vsteps } = res[0];
68
- expect(vsteps[0].actions[0].named).toEqual({ num: '2' });
69
- expect(vsteps[1].actions[0].named).toEqual({ num: '3' });
70
- expect(vsteps[2].actions[0].named).toEqual({ num: '4' });
71
- expect(vsteps[3].actions[0].named).toEqual({ num: '5' });
72
- expect(vsteps[4].actions[0].named).toEqual({ num: '6' });
73
- });
74
- });
75
- describe('gwta interpolated', () => {
76
- test('gets quoted', async () => {
77
- const features = asExpandedFeatures([{ path: 'l1', content: 'is "string"' }]);
78
- const res = await getResolvedSteps(features);
79
- const { vsteps } = res[0];
80
- expect(vsteps[0].actions[0].named?.q_0).toEqual('string');
81
- });
82
- test('gets uri', async () => {
83
- const features = asExpandedFeatures([{ path: 'l1', content: 'is http://url' }]);
84
- const res = await getResolvedSteps(features);
85
- const { vsteps } = res[0];
86
- expect(vsteps[0].actions[0].named?.t_0).toEqual('http://url');
87
- });
88
- });
89
- });
90
- //# sourceMappingURL=Resolver.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Resolver.test.js","sourceRoot":"","sources":["../../src/phases/Resolver.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=collector.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collector.test.d.ts","sourceRoot":"","sources":["../../src/phases/collector.test.ts"],"names":[],"mappings":""}
@@ -1,91 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { basesFrom } from '../lib/util/index.js';
3
- import { getFeaturesAndBackgrounds, shouldProcess } from './collector.js';
4
- class MockFS {
5
- files;
6
- constructor(files) {
7
- this.files = files;
8
- }
9
- existsSync(where) {
10
- return !!this.files[where];
11
- }
12
- readFileSync(where) {
13
- const e = where.split('/');
14
- const h = e.slice(0, 3).join('/');
15
- return this.files[h][e[3]];
16
- }
17
- statSync(where) {
18
- return { isDirectory: () => !!this.files[where] };
19
- }
20
- readdirSync(where) {
21
- return Object.keys(this.files[where] || {});
22
- }
23
- }
24
- const nfs = (files) => new MockFS(files);
25
- describe('getFeaturesAndBackgrounds', () => {
26
- it('directory does not exist', async () => {
27
- expect(() => getFeaturesAndBackgrounds(['/'], [], { existsSync: () => false })).toThrow();
28
- });
29
- it('no features or backgrounds', async () => {
30
- expect(() => getFeaturesAndBackgrounds(['/'], [], { existsSync: () => true })).toThrow();
31
- });
32
- it('no features', async () => {
33
- expect(() => getFeaturesAndBackgrounds(['/0'], [], nfs({ '/0/backgrounds': { 'a.feature': '#' } }))).toThrow();
34
- });
35
- it('gets features', async () => {
36
- expect(getFeaturesAndBackgrounds(['/0'], [], nfs({ '/0/features': { 'a.feature': '#' } }))).toEqual({ features: [{ base: '/0', path: '/features/a.feature', name: '/0/features/a', type: 'feature', content: '#' }], backgrounds: [] });
37
- });
38
- it('gets features and backgrounds', async () => {
39
- const res = getFeaturesAndBackgrounds(['/0'], [], nfs({ '/0/features': { 'a.feature': '#' }, '/0/backgrounds': { 'b.feature': '#' } }));
40
- expect(res).toEqual({
41
- features: [{ base: '/0', path: '/features/a.feature', name: '/0/features/a', type: 'feature', content: '#' }],
42
- backgrounds: [{ base: '/0', path: '/backgrounds/b.feature', name: '/0/backgrounds/b', type: 'feature', content: '#' }]
43
- });
44
- });
45
- it('multi-base no features or backgrounds', async () => {
46
- expect(() => getFeaturesAndBackgrounds(['/,x'], [], { existsSync: () => true })).toThrow();
47
- });
48
- it('multi-base gets features', async () => {
49
- expect(getFeaturesAndBackgrounds(basesFrom('/0,/1'), [], nfs({ '/0/features': { 'a.feature': '#' }, '/1/features': { 'b.feature': '#' } }))).toEqual({
50
- features: [{ base: '/0', path: '/features/a.feature', name: '/0/features/a', type: 'feature', content: '#' }, { base: '/1', path: '/features/b.feature', name: '/1/features/b', type: 'feature', content: '#' }],
51
- backgrounds: []
52
- });
53
- });
54
- it('multi-base no features', async () => {
55
- expect(() => getFeaturesAndBackgrounds('/0,/1'.split(','), [], nfs({ '/0/backgrounds': { 'a.feature': '#' }, '/1/backgrounds': { 'a.feature': '#' } }))).toThrow();
56
- });
57
- it('multi-base no features or backgrounds from first dir', async () => {
58
- expect(() => getFeaturesAndBackgrounds(basesFrom('/0,/1'), [], nfs({ '/1/backgrounds': { 'a.feature': '#' } }))).toThrow();
59
- });
60
- it('multi-base no features or backgrounds from second dir', async () => {
61
- expect(() => getFeaturesAndBackgrounds(basesFrom('/0,/1'), [], nfs({ '/0/backgrounds': { 'a.feature': '#' } }))).toThrow();
62
- });
63
- it('multi-base get features and backgrounds', async () => {
64
- expect(getFeaturesAndBackgrounds(basesFrom('/0,/1'), [], nfs({ '/0/backgrounds': { 'a.feature': '#' }, '/1/features': { 'b.feature': '#' } })))
65
- .toEqual({
66
- features: [{ base: '/1', path: '/features/b.feature', name: '/1/features/b', type: 'feature', content: '#' },],
67
- backgrounds: [{ base: '/0', path: '/backgrounds/a.feature', name: '/0/backgrounds/a', type: 'feature', content: '#' },]
68
- });
69
- });
70
- });
71
- describe('shouldProcess', () => {
72
- it('should process no type & filter', () => {
73
- expect(shouldProcess('hi.feature', undefined, undefined)).toBe(true);
74
- });
75
- it('should process matching filter', () => {
76
- expect(shouldProcess('hi.feature', undefined, ['hi'])).toBe(true);
77
- });
78
- it('should not process wrong type', () => {
79
- expect(shouldProcess('hi.feature', 'wrong', undefined)).toBe(false);
80
- });
81
- it('should not process wrong filter', () => {
82
- expect(shouldProcess('hi.feature', undefined, ['wrong'])).toBe(false);
83
- });
84
- it('should not process root filter', () => {
85
- expect(shouldProcess('/root/hi.feature', undefined, ['root'])).toBe(false);
86
- });
87
- it('should process upper root filter', () => {
88
- expect(shouldProcess('/root/root.feature', undefined, ['root'])).toBe(true);
89
- });
90
- });
91
- //# sourceMappingURL=collector.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collector.test.js","sourceRoot":"","sources":["../../src/phases/collector.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=haibun.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"haibun.test.d.ts","sourceRoot":"","sources":["../../src/steps/haibun.test.ts"],"names":[],"mappings":""}
@@ -1,83 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { FeatureExecutor } from '../phases/Executor.js';
3
- import { getDefaultWorld, getTestEnv, testWithDefaults } from '../lib/test/lib.js';
4
- import { asExpandedFeatures } from '../lib/resolver-features.js';
5
- import TestSteps from '../lib/test/TestSteps.js';
6
- import Haibun from './haibun.js';
7
- import { AStepper, OK, } from '../lib/defs.js';
8
- import { createSteppers } from '../lib/util/index.js';
9
- import { Resolver } from '../phases/Resolver.js';
10
- import Builder from '../phases/Builder.js';
11
- describe('prose', () => {
12
- it('finds prose', async () => {
13
- const { world, vstep, steppers } = await getTestEnv(['haibun'], 'A sentence.', getDefaultWorld(0).world);
14
- const res = await FeatureExecutor.doFeatureStep(steppers, vstep, world);
15
- expect(res.ok).toBe(true);
16
- expect(res.actionResults[0].name).toBe('prose');
17
- });
18
- it('mixed prose', async () => {
19
- const feature = {
20
- path: '/features/test.feature',
21
- content: `Haibun prose allows mixing text descriptions with a functional test.
22
- When I have a test
23
- Then it passes
24
- Prose sections are indicated by the presence of punctuation at the end of paragraphs.`,
25
- };
26
- const result = await testWithDefaults([feature], [Haibun, TestSteps]);
27
- expect(result.ok).toBe(true);
28
- expect(result.featureResults?.length).toBe(1);
29
- });
30
- });
31
- describe('forEvery', () => {
32
- class TestStepsWithDomains extends TestSteps {
33
- domains = [{ name: 'widget', fileType: 'widget', is: 'string', validate: () => undefined }];
34
- locator = (name) => name;
35
- }
36
- it('does not find afterEvery', async () => {
37
- const feature = { path: '/features/test.feature', content: `After every widget, Then the wtw` };
38
- const res = await testWithDefaults([feature], [TestStepsWithDomains, Haibun]);
39
- expect(res.ok).toBe(false);
40
- expect(res.failure.stage).toBe('Resolve');
41
- });
42
- it('finds afterEvery', async () => {
43
- const { world } = getDefaultWorld(0);
44
- const features = asExpandedFeatures([{ path: '/features/test.feature', content: `After every widget, passes` }]);
45
- const steppers = await createSteppers([TestStepsWithDomains, Haibun]);
46
- const builder = new Builder(steppers, world);
47
- const resolver = new Resolver(steppers, world, builder);
48
- const res = await resolver.resolveStepsFromFeatures(features);
49
- expect(res[0].vsteps.length).toBe(2);
50
- });
51
- it('finds afterEvery and passes', async () => {
52
- const feature = { path: '/features/test.feature', content: `After every widget, passes` };
53
- const res = await testWithDefaults([feature], [TestStepsWithDomains, Haibun]);
54
- expect(res.ok).toBe(true);
55
- });
56
- it('finds afterEvery and fails', async () => {
57
- const feature = { path: '/features/test.feature', content: `After every widget, fails` };
58
- const res = await testWithDefaults([feature], [TestStepsWithDomains, Haibun]);
59
- expect(res.ok).toBe(false);
60
- expect(res.failure.stage).toBe('Execute');
61
- });
62
- it('calls event', async () => {
63
- const feature = { path: '/features/test.feature', content: `After every widget, passes` };
64
- let s = 0;
65
- class TestSetsVar extends AStepper {
66
- domains = [{ name: 'widget', fileType: 'widget', is: 'string', validate: () => undefined }];
67
- locator = (name) => name;
68
- steps = {
69
- passes: {
70
- exact: 'passes',
71
- action: async () => {
72
- s = 2;
73
- return OK;
74
- }
75
- }
76
- };
77
- }
78
- const res = await testWithDefaults([feature], [TestSetsVar, Haibun]);
79
- expect(res.ok).toBe(true);
80
- expect(s).toBe(2);
81
- });
82
- });
83
- //# sourceMappingURL=haibun.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"haibun.test.js","sourceRoot":"","sources":["../../src/steps/haibun.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=vars.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vars.test.d.ts","sourceRoot":"","sources":["../../src/steps/vars.test.ts"],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- import { it, expect, describe } from 'vitest';
2
- import { FeatureExecutor } from '../phases/Executor.js';
3
- import { getDefaultWorld, getTestEnv, testWithDefaults } from '../lib/test/lib.js';
4
- describe('vars', () => {
5
- it('assigns', async () => {
6
- const feature = { path: '/features/test.feature', content: 'set x to 1' };
7
- const display = { path: '/features/display.feature', content: 'display x' };
8
- const verify = { path: '/features/verify.feature', content: 'x is "1"' };
9
- const res = await testWithDefaults([feature, display, verify], []);
10
- expect(res.ok).toBe(true);
11
- });
12
- it('assigns empty', async () => {
13
- const feature = { path: '/features/test.feature', content: 'set empty "x" to y' };
14
- const verify = { path: '/features/verify.feature', content: '"x" is "y"' };
15
- const res = await testWithDefaults([feature, verify], []);
16
- expect(res.ok).toBe(true);
17
- });
18
- it('empty does not overwrite', async () => {
19
- const feature = { path: '/features/test.feature', content: 'set empty "x" to y' };
20
- const notempty = { path: '/features/test.feature', content: 'set empty "x" to z' };
21
- const verify = { path: '/features/verify.feature', content: '"x" is "y"' };
22
- const res = await testWithDefaults([feature, notempty, verify], []);
23
- expect(res.ok).toBe(true);
24
- });
25
- it('is not set', async () => {
26
- const { world, vstep, steppers } = await getTestEnv(['vars'], '"x 1" is set', { ...getDefaultWorld(0).world });
27
- const res = await FeatureExecutor.doFeatureStep(steppers, vstep, world);
28
- expect(res.ok).toBe(false);
29
- });
30
- it('is set', async () => {
31
- const feature = { path: '/features/test.feature', content: 'set "x" to y' };
32
- const verify = { path: '/features/verify.feature', content: '"x" is set' };
33
- const res = await testWithDefaults([feature, verify], []);
34
- expect(res.ok).toBe(true);
35
- });
36
- });
37
- //# sourceMappingURL=vars.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vars.test.js","sourceRoot":"","sources":["../../src/steps/vars.test.ts"],"names":[],"mappings":"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"}