@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.
- package/CHANGELOG.md +8 -0
- package/build/InFlightEntertainment.d.ts +2 -2
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/lint/LintService.test.js.map +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/migrationToInstance/StaticToInstanceMigrator.test.d.ts +3 -0
- package/build/__tests__/behavioral/tests/migrationToInstance/StaticToInstanceMigrator.test.js +42 -1
- package/build/__tests__/behavioral/tests/migrationToInstance/StaticToInstanceMigrator.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANonSpruceNodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/boot.js.map +1 -1
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/test/TestRunner.d.ts +2 -2
- package/build/features/test/TestRunner.js.map +1 -1
- package/build/features/test/actions/MigrateAction.js +3 -0
- package/build/features/test/actions/MigrateAction.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.d.ts +2 -2
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/services/BuildService.d.ts +2 -2
- package/build/services/BuildService.js.map +1 -1
- package/build/services/CommandService.d.ts +20 -12
- package/build/services/CommandService.js +4 -4
- package/build/services/CommandService.js.map +1 -1
- package/build/services/GameService.d.ts +2 -2
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.d.ts +2 -2
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.d.ts +1 -1
- package/build/services/PkgService.d.ts +2 -2
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.d.ts +2 -2
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/staticToInstanceMigration/StaticToInstanceMigrator.d.ts +3 -0
- package/build/tests/staticToInstanceMigration/StaticToInstanceMigrator.js +9 -2
- package/build/tests/staticToInstanceMigration/StaticToInstanceMigrator.js.map +1 -1
- package/package.json +3 -3
- package/src/InFlightEntertainment.ts +2 -2
- package/src/__tests__/behavioral/DeployingASkill.test.ts +26 -23
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +13 -13
- package/src/__tests__/behavioral/lint/LintService.test.ts +3 -3
- package/src/__tests__/behavioral/node/CreatingANodeModule.test.ts +2 -2
- package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +2 -2
- package/src/__tests__/behavioral/skill/CreatingASkill.test.ts +2 -2
- package/src/__tests__/behavioral/skill/RebuildingASkill.test.ts +3 -3
- package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +3 -3
- package/src/__tests__/behavioral/tests/migrationToInstance/StaticToInstanceMigrator.test.ts +59 -1
- package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +3 -3
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +6 -6
- package/src/__tests__/behavioral/upgrading/UpgradingANonSpruceNodeModule.test.ts +4 -4
- package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +9 -9
- package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +4 -4
- package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +4 -4
- package/src/__tests__/behavioral/views/WatchingSkillViews.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter2.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter4.test.ts +3 -3
- package/src/__tests__/implementation/FeatureInstaller.test.ts +2 -2
- package/src/__tests__/implementation/PkgService.test.ts +3 -3
- package/src/__tests__/implementation/StoreFeature.test.ts +2 -2
- package/src/boot.ts +2 -2
- package/src/features/skill/actions/BootAction.ts +2 -2
- package/src/features/test/TestRunner.ts +3 -3
- package/src/features/test/actions/MigrateAction.ts +3 -0
- package/src/features/vscode/services/VsCodeService.ts +2 -2
- package/src/services/BuildService.ts +3 -3
- package/src/services/CommandService.ts +27 -14
- package/src/services/GameService.ts +3 -3
- package/src/services/ImportService.ts +3 -3
- package/src/services/LintService.ts +1 -1
- package/src/services/PkgService.ts +3 -3
- package/src/services/ServiceFactory.ts +6 -6
- package/src/tests/AbstractCliTest.ts +2 -2
- package/src/tests/CommandFaker.ts +4 -4
- 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
|
|
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
|
-
|
|
18
|
+
CommandServiceImpl.fakeCommand('which heroku', {
|
|
19
19
|
code: 0,
|
|
20
20
|
})
|
|
21
|
-
|
|
21
|
+
CommandServiceImpl.fakeCommand('grep api.heroku.com ~/.netrc', {
|
|
22
22
|
code: 0,
|
|
23
23
|
})
|
|
24
|
-
|
|
24
|
+
CommandServiceImpl.fakeCommand('git status', {
|
|
25
25
|
code: 0,
|
|
26
26
|
})
|
|
27
|
-
|
|
27
|
+
CommandServiceImpl.fakeCommand('git init', {
|
|
28
28
|
code: 0,
|
|
29
29
|
stdout: 'Initialized empty Git repository in',
|
|
30
30
|
})
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
CommandServiceImpl.fakeCommand('git ls-remote heroku', {
|
|
33
33
|
code: 0,
|
|
34
34
|
})
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
CommandServiceImpl.fakeCommand('which git', {
|
|
37
37
|
code: 0,
|
|
38
38
|
})
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
CommandServiceImpl.fakeCommand('heroku create good-heroku-name', {
|
|
41
41
|
code: 0,
|
|
42
42
|
})
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
CommandServiceImpl.fakeCommand('heroku create bad-heroku-name', {
|
|
45
45
|
code: 1,
|
|
46
46
|
})
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
CommandServiceImpl.fakeCommand('heroku buildpacks:set heroku/nodejs', {
|
|
49
49
|
code: 0,
|
|
50
50
|
})
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
55
|
+
CommandServiceImpl.fakeCommand(/which docker/gis, {
|
|
56
56
|
code: 0,
|
|
57
57
|
})
|
|
58
|
-
|
|
58
|
+
CommandServiceImpl.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {
|
|
59
59
|
code: 0,
|
|
60
60
|
})
|
|
61
|
-
|
|
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
|
-
|
|
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
|
-
|
|
94
|
+
CommandServiceImpl.fakeCommand(/which docker/gis, {
|
|
95
95
|
code: 0,
|
|
96
96
|
})
|
|
97
|
-
|
|
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
|
-
|
|
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
|
-
|
|
128
|
+
CommandServiceImpl.fakeCommand(/which docker/gis, {
|
|
129
129
|
code: 0,
|
|
130
130
|
})
|
|
131
|
-
|
|
131
|
+
CommandServiceImpl.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {
|
|
132
132
|
code: 0,
|
|
133
133
|
})
|
|
134
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
162
|
+
CommandServiceImpl.fakeCommand('yarn rebuild', {
|
|
163
163
|
code: 0,
|
|
164
164
|
})
|
|
165
165
|
|
|
166
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
220
|
+
CommandServiceImpl.fakeCommand(/yarn.*?add/gis, {
|
|
221
221
|
code: 0,
|
|
222
222
|
})
|
|
223
223
|
}
|
|
224
224
|
|
|
225
225
|
private static disableCleanAndBuild() {
|
|
226
|
-
|
|
226
|
+
CommandServiceImpl.fakeCommand('yarn clean.build', {
|
|
227
227
|
code: 0,
|
|
228
228
|
})
|
|
229
229
|
|
|
230
|
-
|
|
230
|
+
CommandServiceImpl.fakeCommand('yarn build.dev', {
|
|
231
231
|
code: 0,
|
|
232
232
|
})
|
|
233
233
|
}
|