@neurodevs/node-tdd 1.0.5 → 1.0.7

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 (179) hide show
  1. package/package.json +1 -1
  2. package/.nvmrc +0 -1
  3. package/.vscode/launch.json +0 -53
  4. package/.vscode/settings.json +0 -62
  5. package/.vscode/tasks.json +0 -99
  6. package/build/__tests__/MockFetch.d.ts +0 -18
  7. package/build/__tests__/MockFetch.js +0 -55
  8. package/build/__tests__/MockFetch.js.map +0 -1
  9. package/build/__tests__/behavioral/AbstractModuleTest.test.d.ts +0 -5
  10. package/build/__tests__/behavioral/AbstractModuleTest.test.js +0 -22
  11. package/build/__tests__/behavioral/AbstractModuleTest.test.js.map +0 -1
  12. package/build/__tests__/behavioral/utilities/AllHooksCalledEvenIfNotDefined.test.d.ts +0 -5
  13. package/build/__tests__/behavioral/utilities/AllHooksCalledEvenIfNotDefined.test.js +0 -34
  14. package/build/__tests__/behavioral/utilities/AllHooksCalledEvenIfNotDefined.test.js.map +0 -1
  15. package/build/__tests__/behavioral/utilities/Assert.test.d.ts +0 -45
  16. package/build/__tests__/behavioral/utilities/Assert.test.js +0 -645
  17. package/build/__tests__/behavioral/utilities/Assert.test.js.map +0 -1
  18. package/build/__tests__/behavioral/utilities/InstanceParentTestCanAccessParentMethods.test.d.ts +0 -4
  19. package/build/__tests__/behavioral/utilities/InstanceParentTestCanAccessParentMethods.test.js +0 -23
  20. package/build/__tests__/behavioral/utilities/InstanceParentTestCanAccessParentMethods.test.js.map +0 -1
  21. package/build/__tests__/behavioral/utilities/MockFetch.test.d.ts +0 -28
  22. package/build/__tests__/behavioral/utilities/MockFetch.test.js +0 -211
  23. package/build/__tests__/behavioral/utilities/MockFetch.test.js.map +0 -1
  24. package/build/__tests__/behavioral/utilities/StackCleaner.test.d.ts +0 -4
  25. package/build/__tests__/behavioral/utilities/StackCleaner.test.js +0 -46
  26. package/build/__tests__/behavioral/utilities/StackCleaner.test.js.map +0 -1
  27. package/build/__tests__/behavioral/utilities/StaticParentTestCanAccessParentMethods.test.d.ts +0 -7
  28. package/build/__tests__/behavioral/utilities/StaticParentTestCanAccessParentMethods.test.js +0 -32
  29. package/build/__tests__/behavioral/utilities/StaticParentTestCanAccessParentMethods.test.js.map +0 -1
  30. package/build/__tests__/behavioral/utilities/StaticTestInheritsAbstractSpruceTestProperly.test.d.ts +0 -4
  31. package/build/__tests__/behavioral/utilities/StaticTestInheritsAbstractSpruceTestProperly.test.js +0 -19
  32. package/build/__tests__/behavioral/utilities/StaticTestInheritsAbstractSpruceTestProperly.test.js.map +0 -1
  33. package/build/__tests__/behavioral/utilities/Stringify.test.d.ts +0 -5
  34. package/build/__tests__/behavioral/utilities/Stringify.test.js +0 -127
  35. package/build/__tests__/behavioral/utilities/Stringify.test.js.map +0 -1
  36. package/build/__tests__/behavioral/utilities/TestDecoratorResolver.test.d.ts +0 -7
  37. package/build/__tests__/behavioral/utilities/TestDecoratorResolver.test.js +0 -38
  38. package/build/__tests__/behavioral/utilities/TestDecoratorResolver.test.js.map +0 -1
  39. package/build/__tests__/behavioral/utilities/TestOnBasic.test.d.ts +0 -12
  40. package/build/__tests__/behavioral/utilities/TestOnBasic.test.js +0 -68
  41. package/build/__tests__/behavioral/utilities/TestOnBasic.test.js.map +0 -1
  42. package/build/__tests__/behavioral/utilities/TestOnInstance.test.d.ts +0 -28
  43. package/build/__tests__/behavioral/utilities/TestOnInstance.test.js +0 -289
  44. package/build/__tests__/behavioral/utilities/TestOnInstance.test.js.map +0 -1
  45. package/build/__tests__/behavioral/utilities/TestOnInstanceExtendsTest.test.d.ts +0 -9
  46. package/build/__tests__/behavioral/utilities/TestOnInstanceExtendsTest.test.js +0 -118
  47. package/build/__tests__/behavioral/utilities/TestOnInstanceExtendsTest.test.js.map +0 -1
  48. package/build/__tests__/behavioral/utilities/TestOnInstanceExtendsTestWithHooks.test.d.ts +0 -5
  49. package/build/__tests__/behavioral/utilities/TestOnInstanceExtendsTestWithHooks.test.js +0 -78
  50. package/build/__tests__/behavioral/utilities/TestOnInstanceExtendsTestWithHooks.test.js.map +0 -1
  51. package/build/__tests__/behavioral/utilities/TestOnInstanceWithParentBeforeAll.test.d.ts +0 -4
  52. package/build/__tests__/behavioral/utilities/TestOnInstanceWithParentBeforeAll.test.js +0 -23
  53. package/build/__tests__/behavioral/utilities/TestOnInstanceWithParentBeforeAll.test.js.map +0 -1
  54. package/build/__tests__/behavioral/utilities/TestOnInstanceWithTwoLevelsOfInheritence.test.d.ts +0 -4
  55. package/build/__tests__/behavioral/utilities/TestOnInstanceWithTwoLevelsOfInheritence.test.js +0 -24
  56. package/build/__tests__/behavioral/utilities/TestOnInstanceWithTwoLevelsOfInheritence.test.js.map +0 -1
  57. package/build/__tests__/behavioral/utilities/TestResolver.test.d.ts +0 -7
  58. package/build/__tests__/behavioral/utilities/TestResolver.test.js +0 -38
  59. package/build/__tests__/behavioral/utilities/TestResolver.test.js.map +0 -1
  60. package/build/__tests__/behavioral/utilities/TestResolverOnStatic.test.d.ts +0 -4
  61. package/build/__tests__/behavioral/utilities/TestResolverOnStatic.test.js +0 -20
  62. package/build/__tests__/behavioral/utilities/TestResolverOnStatic.test.js.map +0 -1
  63. package/build/__tests__/behavioral/workspace/JestJsonParser.test.d.ts +0 -18
  64. package/build/__tests__/behavioral/workspace/JestJsonParser.test.js +0 -267
  65. package/build/__tests__/behavioral/workspace/JestJsonParser.test.js.map +0 -1
  66. package/build/__tests__/behavioral/workspace/TestReporter.test.d.ts +0 -27
  67. package/build/__tests__/behavioral/workspace/TestReporter.test.js +0 -508
  68. package/build/__tests__/behavioral/workspace/TestReporter.test.js.map +0 -1
  69. package/build/__tests__/behavioral/workspace/TestRunner.test.d.ts +0 -15
  70. package/build/__tests__/behavioral/workspace/TestRunner.test.js +0 -99
  71. package/build/__tests__/behavioral/workspace/TestRunner.test.js.map +0 -1
  72. package/build/__tests__/behavioral/workspace/Widgets.test.d.ts +0 -16
  73. package/build/__tests__/behavioral/workspace/Widgets.test.js +0 -134
  74. package/build/__tests__/behavioral/workspace/Widgets.test.js.map +0 -1
  75. package/build/__tests__/mock-terminal-kit.d.ts +0 -79
  76. package/build/__tests__/mock-terminal-kit.js +0 -103
  77. package/build/__tests__/mock-terminal-kit.js.map +0 -1
  78. package/build/__tests__/support/AbstractForInstanceTest.d.ts +0 -4
  79. package/build/__tests__/support/AbstractForInstanceTest.js +0 -9
  80. package/build/__tests__/support/AbstractForInstanceTest.js.map +0 -1
  81. package/build/__tests__/support/AbstractLevelOneTest.d.ts +0 -3
  82. package/build/__tests__/support/AbstractLevelOneTest.js +0 -4
  83. package/build/__tests__/support/AbstractLevelOneTest.js.map +0 -1
  84. package/build/__tests__/support/AbstractLevelTwoTest.d.ts +0 -7
  85. package/build/__tests__/support/AbstractLevelTwoTest.js +0 -14
  86. package/build/__tests__/support/AbstractLevelTwoTest.js.map +0 -1
  87. package/build/__tests__/support/AbstractStaticTest.d.ts +0 -7
  88. package/build/__tests__/support/AbstractStaticTest.js +0 -14
  89. package/build/__tests__/support/AbstractStaticTest.js.map +0 -1
  90. package/build/__tests__/support/AbstractTestOnInstanceTest.d.ts +0 -22
  91. package/build/__tests__/support/AbstractTestOnInstanceTest.js +0 -23
  92. package/build/__tests__/support/AbstractTestOnInstanceTest.js.map +0 -1
  93. package/build/__tests__/support/AbstractTestOnInstanceWithHooks.d.ts +0 -26
  94. package/build/__tests__/support/AbstractTestOnInstanceWithHooks.js +0 -59
  95. package/build/__tests__/support/AbstractTestOnInstanceWithHooks.js.map +0 -1
  96. package/build/__tests__/support/jest.setup.d.ts +0 -1
  97. package/build/__tests__/support/jest.setup.js +0 -4
  98. package/build/__tests__/support/jest.setup.js.map +0 -1
  99. package/build/__tests__/support/onTestFileResult.d.ts +0 -244
  100. package/build/__tests__/support/onTestFileResult.js +0 -980
  101. package/build/__tests__/support/onTestFileResult.js.map +0 -1
  102. package/eslint.config.js +0 -3
  103. package/prettier.config.js +0 -3
  104. package/src/.spruce/settings.json +0 -4
  105. package/src/__tests__/MockFetch.ts +0 -100
  106. package/src/__tests__/behavioral/AbstractModuleTest.test.ts +0 -15
  107. package/src/__tests__/behavioral/utilities/AllHooksCalledEvenIfNotDefined.test.ts +0 -31
  108. package/src/__tests__/behavioral/utilities/Assert.test.ts +0 -826
  109. package/src/__tests__/behavioral/utilities/InstanceParentTestCanAccessParentMethods.test.ts +0 -14
  110. package/src/__tests__/behavioral/utilities/MockFetch.test.ts +0 -240
  111. package/src/__tests__/behavioral/utilities/StackCleaner.test.ts +0 -46
  112. package/src/__tests__/behavioral/utilities/StaticParentTestCanAccessParentMethods.test.ts +0 -34
  113. package/src/__tests__/behavioral/utilities/StaticTestInheritsAbstractSpruceTestProperly.test.ts +0 -11
  114. package/src/__tests__/behavioral/utilities/Stringify.test.ts +0 -169
  115. package/src/__tests__/behavioral/utilities/TestDecoratorResolver.test.ts +0 -51
  116. package/src/__tests__/behavioral/utilities/TestOnBasic.test.ts +0 -62
  117. package/src/__tests__/behavioral/utilities/TestOnInstance.test.ts +0 -439
  118. package/src/__tests__/behavioral/utilities/TestOnInstanceExtendsTest.test.ts +0 -237
  119. package/src/__tests__/behavioral/utilities/TestOnInstanceExtendsTestWithHooks.test.ts +0 -85
  120. package/src/__tests__/behavioral/utilities/TestOnInstanceWithParentBeforeAll.test.ts +0 -14
  121. package/src/__tests__/behavioral/utilities/TestOnInstanceWithTwoLevelsOfInheritence.test.ts +0 -16
  122. package/src/__tests__/behavioral/utilities/TestResolver.test.ts +0 -48
  123. package/src/__tests__/behavioral/utilities/TestResolverOnStatic.test.ts +0 -12
  124. package/src/__tests__/behavioral/workspace/JestJsonParser.test.ts +0 -357
  125. package/src/__tests__/behavioral/workspace/TestReporter.test.ts +0 -584
  126. package/src/__tests__/behavioral/workspace/TestRunner.test.ts +0 -87
  127. package/src/__tests__/behavioral/workspace/Widgets.test.ts +0 -131
  128. package/src/__tests__/mock-terminal-kit.ts +0 -115
  129. package/src/__tests__/support/AbstractForInstanceTest.ts +0 -12
  130. package/src/__tests__/support/AbstractLevelOneTest.ts +0 -3
  131. package/src/__tests__/support/AbstractLevelTwoTest.ts +0 -16
  132. package/src/__tests__/support/AbstractStaticTest.ts +0 -16
  133. package/src/__tests__/support/AbstractTestOnInstanceTest.ts +0 -30
  134. package/src/__tests__/support/AbstractTestOnInstanceWithHooks.ts +0 -138
  135. package/src/__tests__/support/jest.setup.ts +0 -2
  136. package/src/__tests__/support/onTestFileResult.ts +0 -1008
  137. package/src/impl/AbstractModuleTest.ts +0 -67
  138. package/src/index.ts +0 -12
  139. package/src/utilities/AssertionError.ts +0 -14
  140. package/src/utilities/StackCleaner.ts +0 -14
  141. package/src/utilities/TestDecoratorResolver.ts +0 -118
  142. package/src/utilities/assert.ts +0 -583
  143. package/src/utilities/assert.utility.ts +0 -295
  144. package/src/utilities/decorators.ts +0 -167
  145. package/src/workspace/CommandService.ts +0 -256
  146. package/src/workspace/JestJsonParser.ts +0 -255
  147. package/src/workspace/TKButtonWidget.ts +0 -54
  148. package/src/workspace/TestLogItemGenerator.ts +0 -184
  149. package/src/workspace/TestReporter.ts +0 -880
  150. package/src/workspace/TestRunner.ts +0 -128
  151. package/src/workspace/TkBaseWidget.ts +0 -249
  152. package/src/workspace/TkInputWidget.ts +0 -83
  153. package/src/workspace/TkLayoutCellWidget.ts +0 -46
  154. package/src/workspace/TkLayoutWidget.ts +0 -181
  155. package/src/workspace/TkMenuBarWidget.ts +0 -95
  156. package/src/workspace/TkPopupWidget.ts +0 -47
  157. package/src/workspace/TkProgressBarWidget.ts +0 -54
  158. package/src/workspace/TkTextWidget.ts +0 -167
  159. package/src/workspace/TkWindowWidget.ts +0 -122
  160. package/src/workspace/WidgetFactory.ts +0 -33
  161. package/src/workspace/button.types.ts +0 -19
  162. package/src/workspace/duration.utility.ts +0 -34
  163. package/src/workspace/factory.types.ts +0 -101
  164. package/src/workspace/input.types.ts +0 -22
  165. package/src/workspace/keySelectChoices.ts +0 -134
  166. package/src/workspace/layout.types.ts +0 -40
  167. package/src/workspace/menuBar.types.ts +0 -24
  168. package/src/workspace/popup.types.ts +0 -17
  169. package/src/workspace/progressBar.types.ts +0 -13
  170. package/src/workspace/table.types.ts +0 -9
  171. package/src/workspace/termKit.utility.ts +0 -130
  172. package/src/workspace/terminal-kit.d.ts +0 -28
  173. package/src/workspace/test.types.ts +0 -34
  174. package/src/workspace/testRunner.cli.ts +0 -166
  175. package/src/workspace/text.types.ts +0 -27
  176. package/src/workspace/widget.utilities.ts +0 -35
  177. package/src/workspace/widgets.types.ts +0 -102
  178. package/src/workspace/window.types.ts +0 -22
  179. package/tsconfig.json +0 -24
@@ -1,85 +0,0 @@
1
- import test, { suite } from '../../../utilities/decorators.js'
2
- import assert from '../../../utilities/assert.js'
3
- import AbstractTestOnInstanceWithHooksTest from '../../support/AbstractTestOnInstanceWithHooks.js'
4
- import TestDecoratorResolver from '../../../utilities/TestDecoratorResolver.js'
5
-
6
- @suite()
7
- export default class TestOnInstanceExtendsTestWithHooks extends AbstractTestOnInstanceWithHooksTest {
8
- @test()
9
- protected async doesCallBeforeAll() {
10
- assert.isEqual(
11
- TestOnInstanceExtendsTestWithHooks.beforeAllCount,
12
- 1,
13
- 'Did not call beforeAll'
14
- )
15
- }
16
-
17
- @test()
18
- protected async basicPassingTest() {
19
- assert.isTrue(true)
20
- }
21
- }
22
-
23
- TestDecoratorResolver.onWillCallBeforeAll(() => {
24
- TestOnInstanceExtendsTestWithHooks.beforeBeforeAllCount++
25
- })
26
-
27
- TestDecoratorResolver.onWillCallBeforeAll(() => {
28
- TestOnInstanceExtendsTestWithHooks.beforeBeforeAllCount2++
29
- })
30
-
31
- TestDecoratorResolver.onDidCallBeforeAll(() => {
32
- TestOnInstanceExtendsTestWithHooks.afterBeforeAllCount++
33
- })
34
-
35
- TestDecoratorResolver.onDidCallBeforeAll(() => {
36
- TestOnInstanceExtendsTestWithHooks.afterBeforeAllCount2++
37
- })
38
-
39
- TestDecoratorResolver.onWillCallBeforeEach(() => {
40
- TestDecoratorResolver.getActiveTest().beforeBeforeEach++
41
- })
42
-
43
- TestDecoratorResolver.onWillCallBeforeEach(() => {
44
- TestDecoratorResolver.getActiveTest().beforeBeforeEach2++
45
- })
46
-
47
- TestDecoratorResolver.onDidCallBeforeEach(() => {
48
- TestDecoratorResolver.getActiveTest().afterBeforeEach++
49
- })
50
-
51
- TestDecoratorResolver.onDidCallBeforeEach(() => {
52
- TestDecoratorResolver.getActiveTest().afterBeforeEach2++
53
- })
54
-
55
- TestDecoratorResolver.onWillCallAfterEach(() => {
56
- TestDecoratorResolver.getActiveTest().beforeAfterEach++
57
- })
58
-
59
- TestDecoratorResolver.onWillCallAfterEach(() => {
60
- TestDecoratorResolver.getActiveTest().beforeAfterEach2++
61
- })
62
-
63
- TestDecoratorResolver.onDidCallAfterEach(() => {
64
- TestDecoratorResolver.getActiveTest().afterAfterEach++
65
- })
66
-
67
- TestDecoratorResolver.onDidCallAfterEach(() => {
68
- TestDecoratorResolver.getActiveTest().afterAfterEach2++
69
- })
70
-
71
- TestDecoratorResolver.onWillCallAfterAll(() => {
72
- TestOnInstanceExtendsTestWithHooks.beforeAfterAll++
73
- })
74
-
75
- TestDecoratorResolver.onWillCallAfterAll(() => {
76
- TestOnInstanceExtendsTestWithHooks.beforeAfterAll2++
77
- })
78
-
79
- TestDecoratorResolver.onDidCallAfterAll(() => {
80
- TestOnInstanceExtendsTestWithHooks.afterAfterAll++
81
- })
82
-
83
- TestDecoratorResolver.onDidCallAfterAll(() => {
84
- TestOnInstanceExtendsTestWithHooks.afterAfterAll2++
85
- })
@@ -1,14 +0,0 @@
1
- import test, { suite } from '../../../utilities/decorators.js'
2
- import assert from '../../../utilities/assert.js'
3
- import AbstractForInstanceTest from '../../support/AbstractForInstanceTest.js'
4
-
5
- @suite()
6
- export default class TestOnInstanceWithParentBeforeAllTest extends AbstractForInstanceTest {
7
- @test()
8
- protected async canCreateTestOnInstanceWithParentBeforeAll() {
9
- assert.isTrue(
10
- TestOnInstanceWithParentBeforeAllTest.wasBeforeAllCalled,
11
- 'beforeAll was not called on parent class'
12
- )
13
- }
14
- }
@@ -1,16 +0,0 @@
1
- import assert from '../../../utilities/assert.js'
2
- import test, { suite } from '../../../utilities/decorators.js'
3
- import AbstractBeforeAllLevelOneTest from '../../support/AbstractLevelOneTest.js'
4
-
5
- @suite()
6
- export default class TestOnInstanceWithTwoLevelsOfInheritenceTest extends AbstractBeforeAllLevelOneTest {
7
- @test()
8
- protected async canCreateTestOnInstanceWithTwoLevelsOfInheritence() {
9
- assert.isTrue(
10
- TestOnInstanceWithTwoLevelsOfInheritenceTest.wasBeforeAllLevelTwoCalled,
11
- 'beforeAll was not called on level two class'
12
- )
13
-
14
- assert.isTrue(this.wasBeforeEachLevelTwoCalled)
15
- }
16
- }
@@ -1,48 +0,0 @@
1
- import AbstractModuleTest from '../../../impl/AbstractModuleTest.js'
2
- import assert from '../../../utilities/assert.js'
3
- import test, { suite } from '../../../utilities/decorators.js'
4
- import TestDecoratorResolver from '../../../utilities/TestDecoratorResolver.js'
5
-
6
- @suite()
7
- export default class TestDecoratorResolverTest extends AbstractModuleTest {
8
- protected static counter = 4
9
-
10
- protected static async beforeAll(): Promise<void> {
11
- await super.beforeAll()
12
-
13
- assert.isEqual(
14
- this.counter,
15
- 4,
16
- 'beforeAll did not access correct static property'
17
- )
18
- }
19
-
20
- protected static async afterAll(): Promise<void> {
21
- await super.afterAll()
22
-
23
- assert.isEqual(
24
- this.counter,
25
- 10,
26
- 'afterAll did not access correct static property'
27
- )
28
- }
29
-
30
- @test()
31
- protected async canCreateTestDecoratorResolver() {
32
- TestDecoratorResolverTest.counter = 10
33
-
34
- const activeTest = TestDecoratorResolver.getActiveTest()
35
- assert.isInstanceOf(
36
- activeTest,
37
- TestDecoratorResolverTest,
38
- 'getActive test is not this on instance test'
39
- )
40
-
41
- const activeTest2 = TestDecoratorResolver.getActiveTest()
42
- assert.isEqual(
43
- activeTest,
44
- activeTest2,
45
- 'getActiveTest called a second time did not return same instance'
46
- )
47
- }
48
- }
@@ -1,12 +0,0 @@
1
- import AbstractModuleTest from '../../../impl/AbstractModuleTest.js'
2
- import assert from '../../../utilities/assert.js'
3
- import test from '../../../utilities/decorators.js'
4
- import TestDecoratorResolver from '../../../utilities/TestDecoratorResolver.js'
5
-
6
- export default class TestDecoratorResolverOnStaticTest extends AbstractModuleTest {
7
- @test()
8
- protected static async canCreateTestDecoratorResolverOnStatic() {
9
- const active = TestDecoratorResolver.getActiveTest()
10
- assert.isEqual(active, TestDecoratorResolverOnStaticTest)
11
- }
12
- }
@@ -1,357 +0,0 @@
1
- import { END_DIVIDER, START_DIVIDER } from '@sprucelabs/jest-json-reporter'
2
- import AbstractModuleTest from '../../../impl/AbstractModuleTest.js'
3
- import assert from '../../../utilities/assert.js'
4
- import test from '../../../utilities/decorators.js'
5
- import JestJsonParser from '../../../workspace/JestJsonParser.js'
6
- import onTestFileResult from '../../support/onTestFileResult.js'
7
-
8
- type JsonResultKeys = 'onRunStart' | 'onTestFileStart' | 'onTestFileResult'
9
-
10
- export default class JestJsonParserTest extends AbstractModuleTest {
11
- private static parser: JestJsonParser
12
-
13
- protected static async beforeEach() {
14
- await super.beforeEach()
15
- this.parser = new JestJsonParser()
16
- }
17
-
18
- @test()
19
- protected static canCreateJjp() {
20
- assert.isTruthy(this.parser.write)
21
- }
22
-
23
- @test()
24
- protected static generatesEmptyResults() {
25
- const startRun = this.generateTestResults('onRunStart')
26
-
27
- this.parser.write(startRun)
28
-
29
- const testResults = this.parser.getResults()
30
-
31
- assert.isEqualDeep(testResults, {
32
- totalTestFiles: 43,
33
- })
34
- }
35
-
36
- @test()
37
- protected static canHandleSelfContainedWrite() {
38
- const data = this.generateTestResults(
39
- 'onTestFileStart',
40
- 'behavioral/errors/CreatingANewErrorBuilder.test.js'
41
- )
42
-
43
- this.parser.write(this.generateTestResults('onRunStart'))
44
- this.parser.write(data)
45
-
46
- const testResults = this.parser.getResults()
47
- assert.isTruthy(testResults.testFiles)
48
-
49
- assert.isLength(testResults.testFiles, 1)
50
- assert.isEqualDeep(testResults.testFiles[0], {
51
- path: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,
52
- status: 'running',
53
- })
54
- }
55
-
56
- @test()
57
- protected static canHandleSelfContainedWriteWithTwoTests() {
58
- const data =
59
- this.generateTestResults(
60
- 'onTestFileStart',
61
- 'behavioral/errors/CreatingANewErrorBuilder.test.js'
62
- ) +
63
- this.generateTestResults(
64
- 'onTestFileStart',
65
- 'behavioral/tests/RunningTests.test.js'
66
- )
67
- this.parser.write(data)
68
-
69
- const testResults = this.parser.getResults()
70
-
71
- assert.isTruthy(testResults.testFiles)
72
- assert.isLength(testResults.testFiles, 2)
73
- assert.isEqualDeep(testResults.testFiles, [
74
- {
75
- path: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,
76
- status: 'running',
77
- },
78
- {
79
- path: `behavioral/tests/RunningTests.test.ts`,
80
- status: 'running',
81
- },
82
- ])
83
- }
84
-
85
- @test()
86
- protected static multipleSelfContainedWritesWorks() {
87
- this.parser.write(
88
- this.generateTestResults(
89
- 'onTestFileStart',
90
- `behavioral/errors/CreatingANewErrorBuilder.test.js`
91
- )
92
- )
93
-
94
- this.parser.write(
95
- this.generateTestResults(
96
- 'onTestFileStart',
97
- `behavioral/tests/RunningTests.test.js`
98
- )
99
- )
100
- const testResults = this.parser.getResults()
101
-
102
- assert.isTruthy(testResults.testFiles)
103
- assert.isLength(testResults.testFiles, 2)
104
- assert.isEqualDeep(testResults.testFiles, [
105
- {
106
- path: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,
107
- status: 'running',
108
- },
109
- {
110
- path: `behavioral/tests/RunningTests.test.ts`,
111
- status: 'running',
112
- },
113
- ])
114
- }
115
-
116
- @test()
117
- protected static partialWriteReturnsNothing() {
118
- const data = this.generateTestResults(
119
- 'onTestFileStart',
120
- 'behavioral/errors/KeepingErrorsInSync.test.js'
121
- ).substr(0, 100)
122
-
123
- this.parser.write(data)
124
-
125
- const testResults = this.parser.getResults()
126
- assert.isFalsy(testResults.testFiles)
127
- }
128
-
129
- @test()
130
- protected static canPartialWriteAcrossTwoWrites() {
131
- const data = this.generateTestResults(
132
- 'onTestFileStart',
133
- 'behavioral/errors/KeepingErrorsInSync.test.js'
134
- )
135
-
136
- const firstPart = data.substr(0, 100)
137
- const secondPart = data.substr(100)
138
-
139
- this.parser.write(firstPart)
140
- this.parser.write(secondPart)
141
-
142
- const testResults = this.parser.getResults()
143
-
144
- assert.isTruthy(testResults.testFiles)
145
- assert.isLength(testResults.testFiles, 1)
146
-
147
- assert.isEqualDeep(testResults.testFiles[0], {
148
- path: `behavioral/errors/KeepingErrorsInSync.test.ts`,
149
- status: 'running',
150
- })
151
- }
152
-
153
- @test()
154
- protected static canPartialWriteAndSelfContainedAcrossThreeWrites() {
155
- const data = this.generateTestResults(
156
- 'onTestFileStart',
157
- 'behavioral/errors/KeepingErrorsInSync.test.js'
158
- )
159
-
160
- const firstPart = data.substr(0, 100)
161
- const secondPart = data.substr(100)
162
-
163
- this.parser.write(this.generateTestResults('onRunStart'))
164
- this.parser.write(firstPart)
165
- this.parser.write(secondPart)
166
- this.parser.write(
167
- this.generateTestResults(
168
- 'onTestFileStart',
169
- 'behavioral/tests/CreatingANewErrorBuilder.test.js'
170
- )
171
- )
172
-
173
- const testResults = this.parser.getResults()
174
-
175
- assert.isEqualDeep(testResults, {
176
- totalTestFiles: 43,
177
- testFiles: [
178
- {
179
- path: 'behavioral/errors/KeepingErrorsInSync.test.ts',
180
- status: 'running',
181
- },
182
- {
183
- path: 'behavioral/tests/CreatingANewErrorBuilder.test.ts',
184
- status: 'running',
185
- },
186
- ],
187
- })
188
- }
189
-
190
- @test()
191
- protected static canSelfContainedPlusPartial() {
192
- const firstSelfContained = this.generateTestResults(
193
- 'onTestFileStart',
194
- `behavioral/errors/KeepingErrorsInSync.test.js`
195
- )
196
- const data =
197
- firstSelfContained +
198
- this.generateTestResults(
199
- 'onTestFileStart',
200
- 'behavioral/tests/CreatingANewErrorBuilder.test.js'
201
- )
202
-
203
- const splitIdx = firstSelfContained.length + 500
204
- const firstPart = data.substr(0, splitIdx)
205
- const secondPart = data.substr(splitIdx)
206
-
207
- this.parser.write(firstPart)
208
- this.parser.write(secondPart)
209
-
210
- const testResults = this.parser.getResults()
211
- assert.isTruthy(testResults.testFiles)
212
- assert.isLength(testResults.testFiles, 2)
213
-
214
- assert.isEqualDeep(testResults.testFiles[0], {
215
- path: `behavioral/errors/KeepingErrorsInSync.test.ts`,
216
- status: 'running',
217
- })
218
-
219
- assert.isEqualDeep(testResults.testFiles[1], {
220
- path: 'behavioral/tests/CreatingANewErrorBuilder.test.ts',
221
- status: 'running',
222
- })
223
- }
224
-
225
- @test()
226
- protected static canHandleGarbageAtFrontOfData() {
227
- const data =
228
- 'yarn test run\nother garbage' +
229
- this.generateTestResults(
230
- 'onTestFileStart',
231
- 'behavioral/errors/CreatingANewErrorBuilder.test.js'
232
- )
233
- this.parser.write(data)
234
-
235
- const testResults = this.parser.getResults()
236
-
237
- assert.isTruthy(testResults.testFiles)
238
- assert.isLength(testResults.testFiles, 1)
239
- assert.isEqualDeep(testResults.testFiles[0], {
240
- path: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,
241
- status: 'running',
242
- })
243
- }
244
-
245
- @test()
246
- protected static canHandlesSplitTestRestsWithGarbageInFrontAndDanglingEnd() {
247
- this.parser.write(
248
- 'yarn run go team ***************************START_JSON_DIVIDER***************************'
249
- )
250
- this.parser.write(
251
- '{"status":"onTestFileStart","test":{"context":{},"duration":40472,"path":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/tests/RunningTests.test.js"}}'
252
- )
253
-
254
- this.parser.write(
255
- `***************************END_JSON_DIVIDER***************************\n\t\t\t***************************START_JSON_DIVIDER***************************\n\t\t\t{"status":"onTestFileStart","test":{"context":{},"duration":48733,"path":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js"}}\n\t\t\t***************************END_JSON_DIVIDER***************************\n\t\t\t***************************START_JSON_DIVIDER***************************\n\t\t\t{"status":"onTestFileStart","test":{"context":{},"duration":17443,"path":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/watchers/WatchingForChanges.test.js"}}`
256
- )
257
-
258
- const testResults = this.parser.getResults()
259
-
260
- assert.isTruthy(testResults.testFiles)
261
- assert.isLength(testResults.testFiles, 2)
262
- }
263
-
264
- @test()
265
- protected static canUpdateAsTestsCompletes() {
266
- const data = this.generateTestResults(
267
- 'onTestFileStart',
268
- 'behavioral/errors/CreatingANewErrorBuilder.test.js'
269
- )
270
-
271
- this.parser.write(data)
272
-
273
- const completed = this.generateTestResults(
274
- 'onTestFileResult',
275
- 'behavioral/errors/CreatingANewErrorBuilder.test.js'
276
- )
277
-
278
- this.parser.write(completed)
279
-
280
- const testResults = this.parser.getResults()
281
-
282
- assert.isTruthy(testResults.testFiles)
283
- assert.isLength(testResults.testFiles, 11)
284
-
285
- assert.doesInclude(testResults, {
286
- totalTestFiles: 39,
287
- totalTestFilesComplete: 20,
288
- totalFailed: 1,
289
- totalPassed: 181,
290
- totalTests: 183,
291
- totalSkipped: 1,
292
- totalTodo: 0,
293
- })
294
-
295
- assert.isEqualDeep(testResults.testFiles![0], {
296
- path: 'behavioral/errors/CreatingANewErrorBuilder.test.ts',
297
- status: 'running',
298
- })
299
-
300
- assert.isEqualDeep(testResults.testFiles![1], {
301
- path: 'implementation/CasualNameUtility.test.ts',
302
- status: 'passed',
303
- tests: [
304
- {
305
- name: 'No name returns friend',
306
- status: 'passed',
307
- errorMessages: [],
308
- duration: 2,
309
- },
310
- {
311
- name: 'Just last name to just last name',
312
- status: 'passed',
313
- errorMessages: [],
314
- duration: 0,
315
- },
316
- {
317
- name: 'First name only to first name only',
318
- status: 'passed',
319
- errorMessages: [],
320
- duration: 1,
321
- },
322
- {
323
- name: 'last and first name to First Last initial',
324
- status: 'passed',
325
- errorMessages: [],
326
- duration: 0,
327
- },
328
- ],
329
- })
330
-
331
- const failedFile = testResults.testFiles!.find(
332
- (f) => f.path === 'behavioral/UpdatingARole.test.ts'
333
- )
334
- assert.isTruthy(failedFile)
335
- assert.isEqual(failedFile!.status, 'failed')
336
- assert.isTruthy(failedFile!.tests)
337
- assert.isEqual(failedFile!.tests![0].status, 'failed')
338
- }
339
-
340
- private static generateTestResults(
341
- jestStatus: JsonResultKeys,
342
- testFile?: string
343
- ): string {
344
- switch (jestStatus) {
345
- case 'onRunStart':
346
- return `${START_DIVIDER}{"status":"onRunStart","results":{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":0,"numPassedTests":0,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":43,"numTotalTests":0,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1603459399575,"success":false,"testResults":[],"wasInterrupted":false}}${END_DIVIDER}`
347
- case 'onTestFileStart':
348
- return `${START_DIVIDER}{"status":"onTestFileStart","test":{"context":{},"duration":40472,"path":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/${testFile}"}}${END_DIVIDER}`
349
- case 'onTestFileResult':
350
- return `${START_DIVIDER}${JSON.stringify(
351
- onTestFileResult(testFile ?? 'missing')
352
- )}${END_DIVIDER}`
353
- default:
354
- throw new Error('Status not implemented')
355
- }
356
- }
357
- }