@sprucelabs/spruce-cli 24.1.0 → 24.1.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 (90) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/InFlightEntertainment.d.ts +2 -2
  3. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  4. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  5. package/build/__tests__/behavioral/lint/LintService.test.js.map +1 -1
  6. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  7. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  8. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  9. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -1
  10. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  11. package/build/__tests__/behavioral/tests/migrationToInstance/StaticToInstanceMigrator.test.d.ts +3 -0
  12. package/build/__tests__/behavioral/tests/migrationToInstance/StaticToInstanceMigrator.test.js +42 -1
  13. package/build/__tests__/behavioral/tests/migrationToInstance/StaticToInstanceMigrator.test.js.map +1 -1
  14. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  15. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  16. package/build/__tests__/behavioral/upgrading/UpgradingANonSpruceNodeModule.test.js.map +1 -1
  17. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  18. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  19. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  20. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
  21. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  22. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  23. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  24. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  25. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  26. package/build/boot.js.map +1 -1
  27. package/build/features/skill/actions/BootAction.js.map +1 -1
  28. package/build/features/test/TestRunner.d.ts +2 -2
  29. package/build/features/test/TestRunner.js.map +1 -1
  30. package/build/features/test/actions/MigrateAction.js +3 -0
  31. package/build/features/test/actions/MigrateAction.js.map +1 -1
  32. package/build/features/vscode/services/VsCodeService.d.ts +2 -2
  33. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  34. package/build/services/BuildService.d.ts +2 -2
  35. package/build/services/BuildService.js.map +1 -1
  36. package/build/services/CommandService.d.ts +20 -12
  37. package/build/services/CommandService.js +4 -4
  38. package/build/services/CommandService.js.map +1 -1
  39. package/build/services/GameService.d.ts +2 -2
  40. package/build/services/GameService.js.map +1 -1
  41. package/build/services/ImportService.d.ts +2 -2
  42. package/build/services/ImportService.js.map +1 -1
  43. package/build/services/LintService.d.ts +1 -1
  44. package/build/services/PkgService.d.ts +2 -2
  45. package/build/services/PkgService.js.map +1 -1
  46. package/build/services/ServiceFactory.d.ts +2 -2
  47. package/build/services/ServiceFactory.js.map +1 -1
  48. package/build/tests/AbstractCliTest.js.map +1 -1
  49. package/build/tests/CommandFaker.js.map +1 -1
  50. package/build/tests/staticToInstanceMigration/StaticToInstanceMigrator.d.ts +3 -0
  51. package/build/tests/staticToInstanceMigration/StaticToInstanceMigrator.js +9 -2
  52. package/build/tests/staticToInstanceMigration/StaticToInstanceMigrator.js.map +1 -1
  53. package/package.json +3 -3
  54. package/src/InFlightEntertainment.ts +2 -2
  55. package/src/__tests__/behavioral/DeployingASkill.test.ts +26 -23
  56. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +13 -13
  57. package/src/__tests__/behavioral/lint/LintService.test.ts +3 -3
  58. package/src/__tests__/behavioral/node/CreatingANodeModule.test.ts +2 -2
  59. package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +2 -2
  60. package/src/__tests__/behavioral/skill/CreatingASkill.test.ts +2 -2
  61. package/src/__tests__/behavioral/skill/RebuildingASkill.test.ts +3 -3
  62. package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +3 -3
  63. package/src/__tests__/behavioral/tests/migrationToInstance/StaticToInstanceMigrator.test.ts +59 -1
  64. package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +3 -3
  65. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +6 -6
  66. package/src/__tests__/behavioral/upgrading/UpgradingANonSpruceNodeModule.test.ts +4 -4
  67. package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +9 -9
  68. package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +4 -4
  69. package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +4 -4
  70. package/src/__tests__/behavioral/views/WatchingSkillViews.test.ts +2 -2
  71. package/src/__tests__/implementation/ActionExecuter2.test.ts +2 -2
  72. package/src/__tests__/implementation/ActionExecuter4.test.ts +3 -3
  73. package/src/__tests__/implementation/FeatureInstaller.test.ts +2 -2
  74. package/src/__tests__/implementation/PkgService.test.ts +3 -3
  75. package/src/__tests__/implementation/StoreFeature.test.ts +2 -2
  76. package/src/boot.ts +2 -2
  77. package/src/features/skill/actions/BootAction.ts +2 -2
  78. package/src/features/test/TestRunner.ts +3 -3
  79. package/src/features/test/actions/MigrateAction.ts +3 -0
  80. package/src/features/vscode/services/VsCodeService.ts +2 -2
  81. package/src/services/BuildService.ts +3 -3
  82. package/src/services/CommandService.ts +27 -14
  83. package/src/services/GameService.ts +3 -3
  84. package/src/services/ImportService.ts +3 -3
  85. package/src/services/LintService.ts +1 -1
  86. package/src/services/PkgService.ts +3 -3
  87. package/src/services/ServiceFactory.ts +6 -6
  88. package/src/tests/AbstractCliTest.ts +2 -2
  89. package/src/tests/CommandFaker.ts +4 -4
  90. package/src/tests/staticToInstanceMigration/StaticToInstanceMigrator.ts +12 -2
@@ -1,7 +1,7 @@
1
1
  import { diskUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert } from '@sprucelabs/test-utils'
3
3
  import { errorAssert } from '@sprucelabs/test-utils'
4
- import CommandService from '../../services/CommandService'
4
+ import CommandServiceImpl from '../../services/CommandService'
5
5
  import LintService from '../../services/LintService'
6
6
  import AbstractCliTest from '../../tests/AbstractCliTest'
7
7
  import testUtil from '../../tests/utilities/test.utility'
@@ -15,43 +15,46 @@ export default class DeployingASkillTest extends AbstractCliTest {
15
15
 
16
16
  protected static async beforeEach() {
17
17
  await super.beforeEach()
18
- CommandService.fakeCommand('which heroku', {
18
+ CommandServiceImpl.fakeCommand('which heroku', {
19
19
  code: 0,
20
20
  })
21
- CommandService.fakeCommand('grep api.heroku.com ~/.netrc', {
21
+ CommandServiceImpl.fakeCommand('grep api.heroku.com ~/.netrc', {
22
22
  code: 0,
23
23
  })
24
- CommandService.fakeCommand('git status', {
24
+ CommandServiceImpl.fakeCommand('git status', {
25
25
  code: 0,
26
26
  })
27
- CommandService.fakeCommand('git init', {
27
+ CommandServiceImpl.fakeCommand('git init', {
28
28
  code: 0,
29
29
  stdout: 'Initialized empty Git repository in',
30
30
  })
31
31
 
32
- CommandService.fakeCommand('git ls-remote heroku', {
32
+ CommandServiceImpl.fakeCommand('git ls-remote heroku', {
33
33
  code: 0,
34
34
  })
35
35
 
36
- CommandService.fakeCommand('which git', {
36
+ CommandServiceImpl.fakeCommand('which git', {
37
37
  code: 0,
38
38
  })
39
39
 
40
- CommandService.fakeCommand('heroku create good-heroku-name', {
40
+ CommandServiceImpl.fakeCommand('heroku create good-heroku-name', {
41
41
  code: 0,
42
42
  })
43
43
 
44
- CommandService.fakeCommand('heroku create bad-heroku-name', {
44
+ CommandServiceImpl.fakeCommand('heroku create bad-heroku-name', {
45
45
  code: 1,
46
46
  })
47
47
 
48
- CommandService.fakeCommand('heroku buildpacks:set heroku/nodejs', {
48
+ CommandServiceImpl.fakeCommand('heroku buildpacks:set heroku/nodejs', {
49
49
  code: 0,
50
50
  })
51
51
 
52
- CommandService.fakeCommand('git push --set-upstream heroku master', {
53
- code: 0,
54
- })
52
+ CommandServiceImpl.fakeCommand(
53
+ 'git push --set-upstream heroku master',
54
+ {
55
+ code: 0,
56
+ }
57
+ )
55
58
 
56
59
  diskUtil.writeFile(this.resolvePath('Procfile'), 'web: npm run boot')
57
60
  }
@@ -142,7 +145,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
142
145
 
143
146
  @test()
144
147
  protected static async errorsIfHerokuClientNotInstalled() {
145
- CommandService.fakeCommand('which heroku', {
148
+ CommandServiceImpl.fakeCommand('which heroku', {
146
149
  code: 1,
147
150
  })
148
151
 
@@ -165,7 +168,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
165
168
 
166
169
  @test()
167
170
  protected static async errorsIfGitNotInstalled() {
168
- CommandService.fakeCommand('which git', {
171
+ CommandServiceImpl.fakeCommand('which git', {
169
172
  code: 1,
170
173
  })
171
174
 
@@ -188,7 +191,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
188
191
 
189
192
  @test()
190
193
  protected static async errorsIfNotInGitRepo() {
191
- CommandService.fakeCommand('git status', {
194
+ CommandServiceImpl.fakeCommand('git status', {
192
195
  code: 128,
193
196
  stderr: 'fatal: not a git repository (or any of the parent directories): .git',
194
197
  })
@@ -217,7 +220,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
217
220
 
218
221
  @test()
219
222
  protected static async canCreateGitRepoIfNeeded() {
220
- CommandService.fakeCommand('git status', {
223
+ CommandServiceImpl.fakeCommand('git status', {
221
224
  code: 128,
222
225
  })
223
226
 
@@ -233,7 +236,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
233
236
 
234
237
  await this.waitForInput()
235
238
 
236
- CommandService.fakeCommand('git status', {
239
+ CommandServiceImpl.fakeCommand('git status', {
237
240
  code: 0,
238
241
  })
239
242
 
@@ -246,7 +249,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
246
249
 
247
250
  @test()
248
251
  protected static async errorsWhenNotLoggedIntoHerkou() {
249
- CommandService.fakeCommand('grep api.heroku.com ~/.netrc', {
252
+ CommandServiceImpl.fakeCommand('grep api.heroku.com ~/.netrc', {
250
253
  code: 1,
251
254
  })
252
255
 
@@ -329,7 +332,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
329
332
 
330
333
  @test()
331
334
  protected static async failsWhenDeclineToCreateRemoteBranch() {
332
- CommandService.fakeCommand('git ls-remote heroku', {
335
+ CommandServiceImpl.fakeCommand('git ls-remote heroku', {
333
336
  code: 128,
334
337
  })
335
338
 
@@ -361,7 +364,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
361
364
 
362
365
  @test()
363
366
  protected static async asksForHerokuAppName() {
364
- CommandService.fakeCommand('git ls-remote heroku', {
367
+ CommandServiceImpl.fakeCommand('git ls-remote heroku', {
365
368
  code: 128,
366
369
  })
367
370
 
@@ -397,7 +400,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
397
400
 
398
401
  @test()
399
402
  protected static async keepsAskingForAppNameUntilAGoodOneIsSelected() {
400
- CommandService.fakeCommand('git ls-remote heroku', {
403
+ CommandServiceImpl.fakeCommand('git ls-remote heroku', {
401
404
  code: 128,
402
405
  })
403
406
  await this.FeatureFixture().installCachedFeatures('deploy')
@@ -439,7 +442,7 @@ export default class DeployingASkillTest extends AbstractCliTest {
439
442
 
440
443
  @test()
441
444
  protected static async failsWithPendingChangesToCommit() {
442
- CommandService.fakeCommand('git status', {
445
+ CommandServiceImpl.fakeCommand('git status', {
443
446
  code: 0,
444
447
  stdout: 'Changes not staged for commit',
445
448
  })
@@ -4,7 +4,7 @@ import {
4
4
  DISABLE_NPM_CACHE_COMMAND,
5
5
  ENABLE_NPM_CACHE_COMMAND,
6
6
  } from '../../features/cache/constants'
7
- import CommandService from '../../services/CommandService'
7
+ import CommandServiceImpl from '../../services/CommandService'
8
8
  import AbstractCliTest from '../../tests/AbstractCliTest'
9
9
 
10
10
  export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
@@ -21,7 +21,7 @@ export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
21
21
 
22
22
  @test()
23
23
  protected static async returnsErrorWhenEnablingIfDockerIsNotInstalled() {
24
- CommandService.fakeCommand(/which docker/gis, {
24
+ CommandServiceImpl.fakeCommand(/which docker/gis, {
25
25
  code: 1,
26
26
  })
27
27
 
@@ -39,7 +39,7 @@ export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
39
39
 
40
40
  @test()
41
41
  protected static async returnsErrorWhenDockerNotEnabled() {
42
- CommandService.fakeCommand(/npm config/gis, {
42
+ CommandServiceImpl.fakeCommand(/npm config/gis, {
43
43
  code: 1,
44
44
  stderr: 'which',
45
45
  })
@@ -52,13 +52,13 @@ export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
52
52
 
53
53
  @test()
54
54
  protected static async canEnableCache() {
55
- CommandService.fakeCommand(/which docker/gis, {
55
+ CommandServiceImpl.fakeCommand(/which docker/gis, {
56
56
  code: 0,
57
57
  })
58
- CommandService.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {
58
+ CommandServiceImpl.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {
59
59
  code: 0,
60
60
  })
61
- CommandService.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {
61
+ CommandServiceImpl.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {
62
62
  code: 0,
63
63
  })
64
64
 
@@ -73,7 +73,7 @@ export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
73
73
 
74
74
  @test()
75
75
  protected static async returnsErrorWhenDisablingIfDockerIsNotInstalled() {
76
- CommandService.fakeCommand(/which docker/gis, {
76
+ CommandServiceImpl.fakeCommand(/which docker/gis, {
77
77
  code: 1,
78
78
  })
79
79
 
@@ -91,10 +91,10 @@ export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
91
91
 
92
92
  @test()
93
93
  protected static async returnsErrorWhenDisablingIfDockerIsNotStarted() {
94
- CommandService.fakeCommand(/which docker/gis, {
94
+ CommandServiceImpl.fakeCommand(/which docker/gis, {
95
95
  code: 0,
96
96
  })
97
- CommandService.fakeCommand(/npm config/gis, {
97
+ CommandServiceImpl.fakeCommand(/npm config/gis, {
98
98
  code: 1,
99
99
  })
100
100
 
@@ -112,7 +112,7 @@ export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
112
112
 
113
113
  @test()
114
114
  protected static async returnsErrorIfCacheIsNotInstalled() {
115
- CommandService.fakeCommand(/npm config/gis, {
115
+ CommandServiceImpl.fakeCommand(/npm config/gis, {
116
116
  code: 1,
117
117
  stderr: 'tsanoehusnatohu snatoh No such container staoheu saotnhu ',
118
118
  })
@@ -125,13 +125,13 @@ export default class EnablingAndDisablingCacheTest extends AbstractCliTest {
125
125
 
126
126
  @test()
127
127
  protected static async canEnableCacheMultipleTimes() {
128
- CommandService.fakeCommand(/which docker/gis, {
128
+ CommandServiceImpl.fakeCommand(/which docker/gis, {
129
129
  code: 0,
130
130
  })
131
- CommandService.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {
131
+ CommandServiceImpl.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {
132
132
  code: 0,
133
133
  })
134
- CommandService.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {
134
+ CommandServiceImpl.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {
135
135
  code: 0,
136
136
  })
137
137
 
@@ -1,5 +1,5 @@
1
1
  import { test, assert, generateId } from '@sprucelabs/test-utils'
2
- import CommandService from '../../../services/CommandService'
2
+ import CommandServiceImpl from '../../../services/CommandService'
3
3
  import LintService from '../../../services/LintService'
4
4
  import AbstractCliTest from '../../../tests/AbstractCliTest'
5
5
 
@@ -19,7 +19,7 @@ export default class LintServiceTest extends AbstractCliTest {
19
19
  protected static async throwsWhenLintReturnsMessage() {
20
20
  await this.FeatureFixture().installCachedFeatures('skills')
21
21
 
22
- CommandService.fakeCommand(/node/, {
22
+ CommandServiceImpl.fakeCommand(/node/, {
23
23
  code: 0,
24
24
  stdout: `[{"filePath":"/Users/taylorromero/Development/SpruceLabs/spruce-appointments-skill/src/.spruce/stores/stores.types.ts","messages":[{"fatal":false,"severity":1,"message":"File ignored by default. Use a negated ignore pattern (like \\"--ignore-pattern '!<relative/path/to/filename>'\\") to override."}],"errorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]}]\n`,
25
25
  })
@@ -31,7 +31,7 @@ export default class LintServiceTest extends AbstractCliTest {
31
31
  protected static async worksWhenNoMessagesReturned() {
32
32
  await this.FeatureFixture().installCachedFeatures('skills')
33
33
 
34
- CommandService.fakeCommand(/node/, {
34
+ CommandServiceImpl.fakeCommand(/node/, {
35
35
  code: 0,
36
36
  stdout: `[{"filePath":"/Users/taylorromero/Development/SpruceLabs/spruce-appointments-skill/src/.spruce/stores/stores.types.ts","messages":[{"fatal":false,"severity":1,"message":"File ignored by default. Use a negated ignore pattern (like \\"--ignore-pattern '!<relative/path/to/filename>'\\") to override."}],"errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]}]\n`,
37
37
  })
@@ -1,6 +1,6 @@
1
1
  import { diskUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert } from '@sprucelabs/test-utils'
3
- import CommandService from '../../../services/CommandService'
3
+ import CommandServiceImpl from '../../../services/CommandService'
4
4
  import AbstractCliTest from '../../../tests/AbstractCliTest'
5
5
  import testUtil from '../../../tests/utilities/test.utility'
6
6
 
@@ -12,7 +12,7 @@ export default class CreatingANodeModuleTest extends AbstractCliTest {
12
12
 
13
13
  @test()
14
14
  protected static async canCreateAtDestination() {
15
- CommandService.fakeCommand(new RegExp(/yarn add/gis), {
15
+ CommandServiceImpl.fakeCommand(new RegExp(/yarn add/gis), {
16
16
  code: 0,
17
17
  })
18
18
  const promise = this.Action('node', 'create', {
@@ -1,6 +1,6 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
2
  import CliGlobalEmitter, { globalContract } from '../../../GlobalEmitter'
3
- import CommandService from '../../../services/CommandService'
3
+ import CommandServiceImpl from '../../../services/CommandService'
4
4
  import AbstractCliTest from '../../../tests/AbstractCliTest'
5
5
 
6
6
  class SpyEmitter extends CliGlobalEmitter {
@@ -32,7 +32,7 @@ export default class StartingOnboardingTest extends AbstractCliTest {
32
32
 
33
33
  @test()
34
34
  protected static async onboardingThroughSkillCreateThenShutsOff() {
35
- CommandService.fakeCommand(/yarn/, { code: 0 })
35
+ CommandServiceImpl.fakeCommand(/yarn/, { code: 0 })
36
36
 
37
37
  const onboardAction = this.Action('onboard', 'onboard')
38
38
  const onboardPromise = onboardAction.execute({})
@@ -1,12 +1,12 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
- import CommandService from '../../../services/CommandService'
2
+ import CommandServiceImpl from '../../../services/CommandService'
3
3
  import AbstractCliTest from '../../../tests/AbstractCliTest'
4
4
  import testUtil from '../../../tests/utilities/test.utility'
5
5
 
6
6
  export default class CreatingASkillTest extends AbstractCliTest {
7
7
  protected static async beforeEach() {
8
8
  await super.beforeEach()
9
- CommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {
9
+ CommandServiceImpl.fakeCommand(new RegExp(/npm.*?install .*?/gis), {
10
10
  code: 0,
11
11
  })
12
12
  }
@@ -1,6 +1,6 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
2
  import { errorAssert } from '@sprucelabs/test-utils'
3
- import CommandService from '../../../services/CommandService'
3
+ import CommandServiceImpl from '../../../services/CommandService'
4
4
  import AbstractSkillTest from '../../../tests/AbstractSkillTest'
5
5
 
6
6
  export default class RebuildingASkillTest extends AbstractSkillTest {
@@ -13,7 +13,7 @@ export default class RebuildingASkillTest extends AbstractSkillTest {
13
13
 
14
14
  @test()
15
15
  protected static async runsExpectedCommand() {
16
- CommandService.fakeCommand('yarn rebuild', { code: 0 })
16
+ CommandServiceImpl.fakeCommand('yarn rebuild', { code: 0 })
17
17
 
18
18
  const results = await this.Action('skill', 'rebuild').execute({
19
19
  shouldPlayGames: false,
@@ -24,7 +24,7 @@ export default class RebuildingASkillTest extends AbstractSkillTest {
24
24
 
25
25
  @test()
26
26
  protected static async handlesError() {
27
- CommandService.fakeCommand('yarn rebuild', { code: 1 })
27
+ CommandServiceImpl.fakeCommand('yarn rebuild', { code: 1 })
28
28
 
29
29
  const results = await this.Action('skill', 'rebuild').execute({
30
30
  shouldPlayGames: false,
@@ -2,7 +2,7 @@ import { diskUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert } from '@sprucelabs/test-utils'
3
3
  import { errorAssert } from '@sprucelabs/test-utils'
4
4
  import '@sprucelabs/spruce-store-plugin'
5
- import CommandService from '../../../services/CommandService'
5
+ import CommandServiceImpl from '../../../services/CommandService'
6
6
  import AbstractSkillTest from '../../../tests/AbstractSkillTest'
7
7
  import testUtil from '../../../tests/utilities/test.utility'
8
8
 
@@ -159,11 +159,11 @@ export default class CreatingDataStoresTest extends AbstractSkillTest {
159
159
 
160
160
  @test()
161
161
  protected static async upgradeRestoresDataStoreTypes() {
162
- CommandService.fakeCommand('yarn rebuild', {
162
+ CommandServiceImpl.fakeCommand('yarn rebuild', {
163
163
  code: 0,
164
164
  })
165
165
 
166
- CommandService.fakeCommand(/yarn add/gis, {
166
+ CommandServiceImpl.fakeCommand(/yarn add/gis, {
167
167
  code: 0,
168
168
  })
169
169
 
@@ -5,6 +5,11 @@ import AbstractSpruceTest, {
5
5
  suite,
6
6
  generateId,
7
7
  } from '@sprucelabs/test-utils'
8
+ import {
9
+ CommandService,
10
+ ExecuteCommandOptions,
11
+ } from '../../../../services/CommandService'
12
+ import LintService from '../../../../services/LintService'
8
13
  import StaticTestFinderImpl, {
9
14
  StaticTestFinder,
10
15
  } from '../../../../tests/staticToInstanceMigration/StaticTestFinder'
@@ -23,6 +28,7 @@ export default class StaticToInstanceMigratorTest extends AbstractSpruceTest {
23
28
  private readFiles: string[] = []
24
29
  private fakedFileContents: Record<string, string> = {}
25
30
  private lastWrittenFile?: { destination: string; contents: string }
31
+ private spyCommandService: SpyCommandService
26
32
 
27
33
  public constructor() {
28
34
  super()
@@ -48,10 +54,16 @@ export default class StaticToInstanceMigratorTest extends AbstractSpruceTest {
48
54
  this.testFinder = StaticTestFinderImpl.Finder() as FakeStaticTestFinder
49
55
  this.testFileMigrator =
50
56
  StaticToInstanceTestFileMigratorImpl.Migrator() as FakeFileMigrator
57
+ this.spyCommandService = new SpyCommandService()
58
+ const lintService = new LintService(
59
+ this.cwd,
60
+ () => this.spyCommandService
61
+ )
51
62
 
52
63
  this.migrator = StaticToInstanceMigratorImpl.Migrator({
53
64
  testFinder: this.testFinder,
54
65
  testFileMigrator: this.testFileMigrator,
66
+ lintService,
55
67
  })
56
68
  }
57
69
 
@@ -62,7 +74,7 @@ export default class StaticToInstanceMigratorTest extends AbstractSpruceTest {
62
74
  StaticToInstanceMigratorImpl.Migrator()
63
75
  )
64
76
  errorAssert.assertError(err, 'MISSING_PARAMETERS', {
65
- parameters: ['testFinder', 'testFileMigrator'],
77
+ parameters: ['testFinder', 'testFileMigrator', 'lintService'],
66
78
  })
67
79
  }
68
80
 
@@ -203,6 +215,33 @@ export default class StaticToInstanceMigratorTest extends AbstractSpruceTest {
203
215
  assert.isUndefined(this.lastWrittenFile)
204
216
  }
205
217
 
218
+ @test()
219
+ protected async lintsMigratedFiles() {
220
+ await this.run()
221
+ assert.isTrue(this.spyCommandService.didExecute)
222
+ assert.doesInclude(
223
+ this.spyCommandService.lastCommand,
224
+ `await cli.lintFiles(['**/*.ts'])`
225
+ )
226
+ }
227
+
228
+ @test()
229
+ protected async shouldLintAfterMigrating() {
230
+ this.setFakedFinderResults(['match'])
231
+ this.setFakedFileContents({
232
+ match: generateId(),
233
+ })
234
+
235
+ StaticToInstanceMigratorImpl.diskUtil.writeFile = () => {
236
+ assert.isFalse(
237
+ this.spyCommandService.didExecute,
238
+ 'Should not lint yet'
239
+ )
240
+ }
241
+
242
+ await this.run()
243
+ }
244
+
206
245
  private setMigrateFileResponse(contents: string) {
207
246
  this.testFileMigrator.fakedMigrateResponse = contents
208
247
  }
@@ -250,3 +289,22 @@ class FakeFileMigrator implements StaticToInstanceTestFileMigrator {
250
289
  )
251
290
  }
252
291
  }
292
+
293
+ class SpyCommandService implements CommandService {
294
+ public didExecute = false
295
+ public lastCommand?: string
296
+ public async execute(
297
+ cmd: string,
298
+ options?: ExecuteCommandOptions
299
+ ): Promise<{ stdout: string }> {
300
+ this.lastCommand = options?.args?.[1] ?? cmd
301
+ this.didExecute = true
302
+ return {
303
+ stdout: generateId(),
304
+ }
305
+ }
306
+ public kill(): void {}
307
+ public pid(): number | undefined {
308
+ return 0
309
+ }
310
+ }
@@ -1,7 +1,7 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
2
  import { random, uniq } from 'lodash'
3
3
  import UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'
4
- import CommandService from '../../../services/CommandService'
4
+ import CommandServiceImpl from '../../../services/CommandService'
5
5
  import AbstractCliTest from '../../../tests/AbstractCliTest'
6
6
  import { NpmPackage } from '../../../types/cli.types'
7
7
 
@@ -27,7 +27,7 @@ export default class UpdateDependencies2Test extends AbstractCliTest {
27
27
 
28
28
  const passedArgs: string[] = []
29
29
 
30
- CommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {
30
+ CommandServiceImpl.fakeCommand(/(npm|yarn).*?(install|add)/, {
31
31
  code: 0,
32
32
  callback: (_, args) => {
33
33
  passedArgs.push(...args)
@@ -51,7 +51,7 @@ export default class UpdateDependencies2Test extends AbstractCliTest {
51
51
 
52
52
  let passedArgs: any[] = []
53
53
 
54
- CommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {
54
+ CommandServiceImpl.fakeCommand(/(npm|yarn).*?(install|add)/, {
55
55
  code: 0,
56
56
  callback: (_, args) => {
57
57
  passedArgs.push(args)
@@ -1,6 +1,6 @@
1
1
  import { diskUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert } from '@sprucelabs/test-utils'
3
- import CommandService from '../../../services/CommandService'
3
+ import CommandServiceImpl from '../../../services/CommandService'
4
4
  import AbstractCliTest from '../../../tests/AbstractCliTest'
5
5
  import uiAssert from '../../../tests/utilities/uiAssert.utility'
6
6
 
@@ -16,9 +16,9 @@ export default class UpgradingANodeModuleTest extends AbstractCliTest {
16
16
 
17
17
  @test()
18
18
  protected static async buildErrorsGetPassedThroughToResults() {
19
- CommandService.fakeCommand(/yarn (add|install)/gis, { code: 0 })
20
- CommandService.fakeCommand(/yarn clean.build/gis, { code: 1 })
21
- CommandService.fakeCommand(/yarn build.dev/gis, { code: 0 })
19
+ CommandServiceImpl.fakeCommand(/yarn (add|install)/gis, { code: 0 })
20
+ CommandServiceImpl.fakeCommand(/yarn clean.build/gis, { code: 1 })
21
+ CommandServiceImpl.fakeCommand(/yarn build.dev/gis, { code: 0 })
22
22
 
23
23
  await this.emitter.on('feature.did-execute', () => {
24
24
  return {
@@ -33,7 +33,7 @@ export default class UpgradingANodeModuleTest extends AbstractCliTest {
33
33
 
34
34
  @test()
35
35
  protected static async upgradingWritesExpectedFiles() {
36
- CommandService.fakeCommand(/build/gis, { code: 0 })
36
+ CommandServiceImpl.fakeCommand(/build/gis, { code: 0 })
37
37
 
38
38
  const shouldNotBeFound = [
39
39
  'src/.spruce/skill.ts',
@@ -58,7 +58,7 @@ export default class UpgradingANodeModuleTest extends AbstractCliTest {
58
58
  diskUtil.writeFile(tsConfig, 'beenChanged')
59
59
  }
60
60
 
61
- CommandService.fakeCommand(/yarn/gi, {
61
+ CommandServiceImpl.fakeCommand(/yarn/gi, {
62
62
  code: 0,
63
63
  })
64
64
 
@@ -1,6 +1,6 @@
1
1
  import { HASH_SPRUCE_DIR, diskUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert, generateId } from '@sprucelabs/test-utils'
3
- import CommandService from '../../../services/CommandService'
3
+ import CommandServiceImpl from '../../../services/CommandService'
4
4
  import PkgService from '../../../services/PkgService'
5
5
  import AbstractCliTest from '../../../tests/AbstractCliTest'
6
6
  import ScriptUpdaterImpl, {
@@ -61,7 +61,7 @@ export default class UpgradingANonSpruceNodeModuleTest extends AbstractCliTest {
61
61
 
62
62
  let wasHit = false
63
63
 
64
- CommandService.fakeCommand(/yarn.*?-W/, {
64
+ CommandServiceImpl.fakeCommand(/yarn.*?-W/, {
65
65
  code: 0,
66
66
  callback: () => {
67
67
  wasHit = true
@@ -79,7 +79,7 @@ export default class UpgradingANonSpruceNodeModuleTest extends AbstractCliTest {
79
79
 
80
80
  const commands: string[] = []
81
81
 
82
- CommandService.fakeCommand(/yarn.*?add .*/gis, {
82
+ CommandServiceImpl.fakeCommand(/yarn.*?add .*/gis, {
83
83
  code: 0,
84
84
  callback: (command, args) => {
85
85
  commands.push([command, ...args].join(' '))
@@ -107,7 +107,7 @@ export default class UpgradingANonSpruceNodeModuleTest extends AbstractCliTest {
107
107
  protected static async runsUpgradeInEveryPackageInWorkspace() {
108
108
  this.setWorkspaces(['packages/*'])
109
109
 
110
- CommandService.clearFakedResponses()
110
+ CommandServiceImpl.clearFakedResponses()
111
111
 
112
112
  const moduleName = 'test1'
113
113
  const path = this.resolvePath('packages', moduleName)
@@ -3,7 +3,7 @@ import { diskUtil } from '@sprucelabs/spruce-skill-utils'
3
3
  import { test, assert } from '@sprucelabs/test-utils'
4
4
  import SyncAction from '../../../features/error/actions/SyncAction'
5
5
  import UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'
6
- import CommandService from '../../../services/CommandService'
6
+ import CommandServiceImpl from '../../../services/CommandService'
7
7
  import AbstractCliTest from '../../../tests/AbstractCliTest'
8
8
  import testUtil from '../../../tests/utilities/test.utility'
9
9
  export default class UpgradingASkill3Test extends AbstractCliTest {
@@ -17,14 +17,14 @@ export default class UpgradingASkill3Test extends AbstractCliTest {
17
17
  }
18
18
 
19
19
  await super.beforeEach()
20
- CommandService.fakeCommand(new RegExp(/yarn rebuild/gis), {
20
+ CommandServiceImpl.fakeCommand(new RegExp(/yarn rebuild/gis), {
21
21
  code: 0,
22
22
  })
23
23
  }
24
24
 
25
25
  @test()
26
26
  protected static async doesNotAddResolvePathAliasesToDependenciesAfterUpgrade() {
27
- CommandService.clearFakedResponses()
27
+ CommandServiceImpl.clearFakedResponses()
28
28
  await this.FeatureFixture().installCachedFeatures('views')
29
29
 
30
30
  await this.Action('node', 'upgrade').execute({})
@@ -36,7 +36,7 @@ export default class UpgradingASkill3Test extends AbstractCliTest {
36
36
 
37
37
  @test()
38
38
  protected static async featuresNotEnabledDontInstall() {
39
- CommandService.clearFakedResponses()
39
+ CommandServiceImpl.clearFakedResponses()
40
40
  await this.FeatureFixture().installCachedFeatures('schemas')
41
41
 
42
42
  const results = await this.Action('node', 'upgrade').execute({})
@@ -93,7 +93,7 @@ export default class UpgradingASkill3Test extends AbstractCliTest {
93
93
  return {}
94
94
  }
95
95
 
96
- CommandService.fakeCommand('yarn clean.build', {
96
+ CommandServiceImpl.fakeCommand('yarn clean.build', {
97
97
  code: 0,
98
98
  callback: () => {
99
99
  wasCleanBuildCalled = true
@@ -102,7 +102,7 @@ export default class UpgradingASkill3Test extends AbstractCliTest {
102
102
 
103
103
  let wasBuildDevCalled = false
104
104
 
105
- CommandService.fakeCommand('yarn build.dev', {
105
+ CommandServiceImpl.fakeCommand('yarn build.dev', {
106
106
  code: 0,
107
107
  callback: () => {
108
108
  wasBuildDevCalled = true
@@ -217,17 +217,17 @@ export default class UpgradingASkill3Test extends AbstractCliTest {
217
217
  private static disableCleanBuildAndYarnAdd() {
218
218
  this.disableCleanAndBuild()
219
219
 
220
- CommandService.fakeCommand(/yarn.*?add/gis, {
220
+ CommandServiceImpl.fakeCommand(/yarn.*?add/gis, {
221
221
  code: 0,
222
222
  })
223
223
  }
224
224
 
225
225
  private static disableCleanAndBuild() {
226
- CommandService.fakeCommand('yarn clean.build', {
226
+ CommandServiceImpl.fakeCommand('yarn clean.build', {
227
227
  code: 0,
228
228
  })
229
229
 
230
- CommandService.fakeCommand('yarn build.dev', {
230
+ CommandServiceImpl.fakeCommand('yarn build.dev', {
231
231
  code: 0,
232
232
  })
233
233
  }