@sprucelabs/spruce-cli 21.0.13 → 21.0.15
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 +16 -0
- package/build/__tests__/behavioral/tests/TestsInModulesDontUseLoginDecorator.test.d.ts +8 -0
- package/build/__tests__/behavioral/tests/TestsInModulesDontUseLoginDecorator.test.js +72 -0
- package/build/__tests__/behavioral/tests/TestsInModulesDontUseLoginDecorator.test.js.map +1 -0
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/features/ActionExecuter.js +1 -1
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionQuestionAsker.d.ts +21 -16
- package/build/features/ActionQuestionAsker.js +6 -2
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/skill/SkillFeature.js +1 -0
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/test/TestFeature.js +0 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/actions/CreateAction.d.ts +2 -2
- package/build/features/test/actions/CreateAction.js +4 -4
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/features/test/writers/TestWriter.d.ts +2 -2
- package/build/features/test/writers/TestWriter.js +3 -3
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/writers/WriterFactory.d.ts +2 -2
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +24 -24
- package/src/__tests__/behavioral/tests/TestsInModulesDontUseLoginDecorator.test.ts +76 -0
- package/src/__tests__/implementation/OrganizationStore.test.ts +1 -0
- package/src/features/ActionExecuter.ts +2 -2
- package/src/features/ActionQuestionAsker.ts +49 -19
- package/src/features/skill/SkillFeature.ts +1 -0
- package/src/features/test/TestFeature.ts +0 -1
- package/src/features/test/actions/CreateAction.ts +11 -10
- package/src/features/test/writers/TestWriter.ts +2 -2
- package/src/writers/WriterFactory.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [21.0.15](https://github.com/sprucelabsai-community/spruce-cli-workspace/compare/v21.0.14...v21.0.15) (2024-05-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [21.0.14](https://github.com/sprucelabsai-community/spruce-cli-workspace/compare/v21.0.13...v21.0.14) (2024-05-14)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [21.0.13](https://github.com/sprucelabsai-community/spruce-cli-workspace/compare/v21.0.12...v21.0.13) (2024-05-14)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import AbstractCliTest from '../../../tests/AbstractCliTest';
|
|
2
|
+
export default class TestsInModulesDontUseLoginDecoratorTest extends AbstractCliTest {
|
|
3
|
+
protected static beforeEach(): Promise<void>;
|
|
4
|
+
protected static creatingATestInModuleDoesNotComeWithDecorator(): Promise<void>;
|
|
5
|
+
protected static creatingATestInSkillComesWithLoginDecorator(): Promise<void>;
|
|
6
|
+
private static createTestValidateAndGetContents;
|
|
7
|
+
private static installSkill;
|
|
8
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
|
|
13
|
+
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
14
|
+
const ActionQuestionAsker_1 = __importDefault(require("../../../features/ActionQuestionAsker"));
|
|
15
|
+
const AbstractCliTest_1 = __importDefault(require("../../../tests/AbstractCliTest"));
|
|
16
|
+
const ABSTRACT_SPRUCE_TEST_IDX = '-1';
|
|
17
|
+
class TestsInModulesDontUseLoginDecoratorTest extends AbstractCliTest_1.default {
|
|
18
|
+
static async beforeEach() {
|
|
19
|
+
await super.beforeEach();
|
|
20
|
+
ActionQuestionAsker_1.default.Class = StubQuestionAsker;
|
|
21
|
+
}
|
|
22
|
+
static async creatingATestInModuleDoesNotComeWithDecorator() {
|
|
23
|
+
await this.installSkill('testsInNodeModule');
|
|
24
|
+
const contents = await this.createTestValidateAndGetContents();
|
|
25
|
+
test_utils_1.assert.doesNotInclude(contents, 'spruce-test-fixtures');
|
|
26
|
+
}
|
|
27
|
+
static async creatingATestInSkillComesWithLoginDecorator() {
|
|
28
|
+
await this.installSkill('tests');
|
|
29
|
+
const contents = await this.createTestValidateAndGetContents();
|
|
30
|
+
test_utils_1.assert.doesInclude(contents, 'spruce-test-fixtures');
|
|
31
|
+
test_utils_1.assert.doesInclude(contents, /^@fake\.login\(\)/m);
|
|
32
|
+
}
|
|
33
|
+
static async createTestValidateAndGetContents() {
|
|
34
|
+
const promise = this.Action('test', 'create').execute({
|
|
35
|
+
type: 'behavioral',
|
|
36
|
+
nameReadable: 'test',
|
|
37
|
+
nameCamel: 'test',
|
|
38
|
+
});
|
|
39
|
+
await this.ui.waitForInput();
|
|
40
|
+
await this.ui.sendInput(ABSTRACT_SPRUCE_TEST_IDX);
|
|
41
|
+
const results = await promise;
|
|
42
|
+
await this.assertValidActionResponseFiles(results);
|
|
43
|
+
const testFile = results.files[0].path;
|
|
44
|
+
const contents = spruce_skill_utils_1.diskUtil.readFile(testFile);
|
|
45
|
+
return contents;
|
|
46
|
+
}
|
|
47
|
+
static async installSkill(key) {
|
|
48
|
+
await this.FeatureFixture().installCachedFeatures(key);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.default = TestsInModulesDontUseLoginDecoratorTest;
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, test_utils_1.test)()
|
|
54
|
+
], TestsInModulesDontUseLoginDecoratorTest, "creatingATestInModuleDoesNotComeWithDecorator", null);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, test_utils_1.test)()
|
|
57
|
+
], TestsInModulesDontUseLoginDecoratorTest, "creatingATestInSkillComesWithLoginDecorator", null);
|
|
58
|
+
class StubQuestionAsker {
|
|
59
|
+
async installOrMarkAsSkippedMissingDependencies() {
|
|
60
|
+
return {};
|
|
61
|
+
}
|
|
62
|
+
async askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(_isInstalled, options) {
|
|
63
|
+
return options ?? {};
|
|
64
|
+
}
|
|
65
|
+
async askAboutMissingActionOptions() {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
async installOurFeature() {
|
|
69
|
+
return {};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=TestsInModulesDontUseLoginDecorator.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestsInModulesDontUseLoginDecorator.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/tests/TestsInModulesDontUseLoginDecorator.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uEAAyD;AACzD,uDAAqD;AACrD,gGAG8C;AAE9C,qFAA4D;AAE5D,MAAM,wBAAwB,GAAG,IAAI,CAAA;AAErC,MAAqB,uCAAwC,SAAQ,yBAAe;IACtE,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,6BAAuB,CAAC,KAAK,GAAG,iBAAiB,CAAA;IACrD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,6CAA6C;QAChE,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAA;QAC9D,mBAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;IAC3D,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,2CAA2C;QAC9D,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAA;QAC9D,mBAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;QACpD,mBAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAA;IACtD,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gCAAgC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC;YAClD,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,MAAM;YACpB,SAAS,EAAE,MAAM;SACpB,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAA;QAC5B,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;QAEjD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAA;QAE7B,MAAM,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAA;QAElD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACvC,MAAM,QAAQ,GAAG,6BAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC5C,OAAO,QAAQ,CAAA;IACnB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAW;QACzC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAC1D,CAAC;CACJ;AA3CD,0DA2CC;AApC0B;IADtB,IAAA,iBAAI,GAAE;kGAKN;AAGsB;IADtB,IAAA,iBAAI,GAAE;gGAMN;AA0BL,MAAM,iBAAiB;IACZ,KAAK,CAAC,yCAAyC;QAClD,OAAO,EAAE,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,oDAAoD,CAC7D,YAAqB,EACrB,OAA6C;QAE7C,OAAO,OAAO,IAAI,EAAE,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,4BAA4B;QACrC,OAAO,SAAS,CAAA;IACpB,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC1B,OAAO,EAAE,CAAA;IACb,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationStore.test.js","sourceRoot":"","sources":["../../../src/__tests__/implementation/OrganizationStore.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAqD;AACrD,kFAAyD;AAEzD,MAAqB,qBAAsB,SAAQ,yBAAe;IAEvC,AAAb,MAAM,CAAC,KAAK,CAAC,cAAc;QACjC,mBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;IAC/C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B;QAC/C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;QAElE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,WAAW,CAAC;YACxD,IAAI,EAAE,YAAY;SACrB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,oBAAoB,CAAC;YAC5D,IAAI,EAAE,aAAa;SACtB,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAChC,cAAc,CACjB,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAEzC,mBAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/B,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,YAAY;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;QAElE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,WAAW,CAAC;YACxD,IAAI,EAAE,YAAY;SACrB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAEtE,mBAAM,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAE/B,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAEvE,mBAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,YAAY;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;QAElE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,WAAW,CAAC;YACxD,IAAI,EAAE,YAAY;SACrB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,oBAAoB,CAAC;YAC5D,IAAI,EAAE,aAAa;SACtB,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,0BAA0B,CACvD,KAAK,CAAC,EAAE,EACR,GAAG,CAAC,EAAE,CACT,CAAA;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAChC,cAAc,CACjB,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACzC,mBAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC9B,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,YAAY;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"OrganizationStore.test.js","sourceRoot":"","sources":["../../../src/__tests__/implementation/OrganizationStore.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ class ActionExecuter {
|
|
|
53
53
|
}
|
|
54
54
|
action_utility_1.default.assertNoErrorsInResponse(willExecuteResults);
|
|
55
55
|
const feature = installer.getFeature(featureCode);
|
|
56
|
-
const asker =
|
|
56
|
+
const asker = ActionQuestionAsker_1.default.Asker({
|
|
57
57
|
featureInstaller: installer,
|
|
58
58
|
feature,
|
|
59
59
|
actionCode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionExecuter.js","sourceRoot":"","sources":["../../src/features/ActionExecuter.ts"],"names":[],"mappings":";;;;;AAAA,uEAAkE;AAClE,yDAAgC;AAChC,wEAA+C;AAG/C,iFAAoD;AAEpD,
|
|
1
|
+
{"version":3,"file":"ActionExecuter.js","sourceRoot":"","sources":["../../src/features/ActionExecuter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,21 @@
|
|
|
1
|
-
import { Schema, SchemaPartialValues } from '@sprucelabs/schema';
|
|
1
|
+
import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema';
|
|
2
2
|
import { GraphicsInterface } from '../types/cli.types';
|
|
3
3
|
import AbstractFeature from './AbstractFeature';
|
|
4
4
|
import FeatureInstaller from './FeatureInstaller';
|
|
5
5
|
import { FeatureCode, FeatureInstallResponse, FeatureAction, FeatureMap } from './features.types';
|
|
6
|
-
export default class
|
|
6
|
+
export default class ActionQuestionAskerImpl<F extends FeatureCode = FeatureCode> implements ActionQuestionAsker<F> {
|
|
7
7
|
private ui;
|
|
8
|
+
static Class?: new (options: ActionQuestionAskerOptions) => ActionQuestionAsker<any>;
|
|
8
9
|
private featureInstaller;
|
|
9
10
|
private actionCode;
|
|
10
11
|
private feature;
|
|
11
12
|
private shouldAutoHandleDependencies;
|
|
12
|
-
constructor(options:
|
|
13
|
-
|
|
14
|
-
featureInstaller: FeatureInstaller;
|
|
15
|
-
actionCode: string;
|
|
16
|
-
feature: AbstractFeature;
|
|
17
|
-
shouldAutoHandleDependencies: boolean;
|
|
18
|
-
});
|
|
13
|
+
protected constructor(options: ActionQuestionAskerOptions);
|
|
14
|
+
static Asker(options: ActionQuestionAskerOptions): ActionQuestionAsker<any>;
|
|
19
15
|
installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse>;
|
|
20
16
|
private getDependenciesNotInstalled;
|
|
21
|
-
askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(isInstalled: boolean, options
|
|
22
|
-
|
|
23
|
-
name?: any;
|
|
24
|
-
description?: any;
|
|
25
|
-
destination?: any;
|
|
26
|
-
}>;
|
|
27
|
-
askAboutMissingActionOptions(action: FeatureAction<Schema>, options: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined): Promise<Pick<import("@sprucelabs/schema").SchemaStaticValues<Schema, false, never, import("@sprucelabs/schema").StaticSchemaAllValues<Schema, false>>, never> | undefined>;
|
|
17
|
+
askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(isInstalled: boolean, options?: Record<string, any> & FeatureCommandExecuteOptions<F>): Promise<Record<string, any> & FeatureCommandExecuteOptions<F>>;
|
|
18
|
+
askAboutMissingActionOptions<S extends Schema>(action: FeatureAction<S>, options?: Record<string, any> & FeatureCommandExecuteOptions<F>): Promise<SchemaValues<S> | undefined>;
|
|
28
19
|
installOurFeature(installOptions: Record<string, any>): Promise<FeatureInstallResponse>;
|
|
29
20
|
private renderHeading;
|
|
30
21
|
private installOrMarkAsSkippedMissingDependency;
|
|
@@ -33,4 +24,18 @@ export default class ActionOptionAsker<F extends FeatureCode = FeatureCode> {
|
|
|
33
24
|
private generateConfirmInstallMessage;
|
|
34
25
|
}
|
|
35
26
|
type FeatureCommandExecuteOptions<F extends FeatureCode, S extends Schema | undefined = FeatureMap[F]['optionsSchema']> = S extends Schema ? SchemaPartialValues<S> : undefined;
|
|
27
|
+
interface ActionQuestionAskerOptions {
|
|
28
|
+
ui: GraphicsInterface;
|
|
29
|
+
featureInstaller: FeatureInstaller;
|
|
30
|
+
actionCode: string;
|
|
31
|
+
feature: AbstractFeature;
|
|
32
|
+
shouldAutoHandleDependencies: boolean;
|
|
33
|
+
}
|
|
34
|
+
export type QuestionAskerOptionsOptions<F extends FeatureCode> = Record<string, any> & FeatureCommandExecuteOptions<F>;
|
|
35
|
+
export interface ActionQuestionAsker<F extends FeatureCode = FeatureCode> {
|
|
36
|
+
installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse>;
|
|
37
|
+
askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(isInstalled: boolean, options?: QuestionAskerOptionsOptions<F>): Promise<Record<string, any> & FeatureCommandExecuteOptions<F>>;
|
|
38
|
+
askAboutMissingActionOptions<S extends Schema>(action: FeatureAction<S>, options?: QuestionAskerOptionsOptions<F>): Promise<SchemaValues<S> | undefined>;
|
|
39
|
+
installOurFeature(installOptions: Record<string, any>): Promise<FeatureInstallResponse>;
|
|
40
|
+
}
|
|
36
41
|
export {};
|
|
@@ -9,8 +9,9 @@ const constants_1 = require("../constants");
|
|
|
9
9
|
const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
|
|
10
10
|
const form_utility_1 = __importDefault(require("../utilities/form.utility"));
|
|
11
11
|
const feature_utilities_1 = __importDefault(require("./feature.utilities"));
|
|
12
|
-
class
|
|
12
|
+
class ActionQuestionAskerImpl {
|
|
13
13
|
ui;
|
|
14
|
+
static Class;
|
|
14
15
|
featureInstaller;
|
|
15
16
|
actionCode;
|
|
16
17
|
feature;
|
|
@@ -22,6 +23,9 @@ class ActionOptionAsker {
|
|
|
22
23
|
this.feature = options.feature;
|
|
23
24
|
this.shouldAutoHandleDependencies = options.shouldAutoHandleDependencies;
|
|
24
25
|
}
|
|
26
|
+
static Asker(options) {
|
|
27
|
+
return new (this.Class ?? ActionQuestionAskerImpl)(options);
|
|
28
|
+
}
|
|
25
29
|
async installOrMarkAsSkippedMissingDependencies() {
|
|
26
30
|
const notInstalled = await this.getDependenciesNotInstalled();
|
|
27
31
|
let response = {};
|
|
@@ -251,7 +255,7 @@ class ActionOptionAsker {
|
|
|
251
255
|
return `Before you can run \`${this.getCommandName()}\`, ${message} Don't worry, I'll walk you through it!`;
|
|
252
256
|
}
|
|
253
257
|
}
|
|
254
|
-
exports.default =
|
|
258
|
+
exports.default = ActionQuestionAskerImpl;
|
|
255
259
|
function s(array) {
|
|
256
260
|
return array.length === 1 ? '' : '';
|
|
257
261
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionQuestionAsker.js","sourceRoot":"","sources":["../../src/features/ActionQuestionAsker.ts"],"names":[],"mappings":";;;;;AACA,yDAAgC;AAChC,gFAAuD;AACvD,4CAAuC;AACvC,wEAA+C;AAE/C,6EAAgD;AAEhD,4EAA8C;AAS9C,MAAqB,
|
|
1
|
+
{"version":3,"file":"ActionQuestionAsker.js","sourceRoot":"","sources":["../../src/features/ActionQuestionAsker.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ class SkillFeature extends AbstractFeature_1.default {
|
|
|
30
30
|
name: '@sprucelabs/mercury-types',
|
|
31
31
|
},
|
|
32
32
|
{ name: 'tsconfig-paths', isDev: true },
|
|
33
|
+
{ name: '@sprucelabs/spruce-test-fixtures@latest', isDev: true },
|
|
33
34
|
{ name: 'ts-node', isDev: true },
|
|
34
35
|
...universalDevDependencies_1.default,
|
|
35
36
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillFeature.js","sourceRoot":"","sources":["../../../src/features/skill/SkillFeature.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SkillFeature.js","sourceRoot":"","sources":["../../../src/features/skill/SkillFeature.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,6 @@ class TestFeature extends AbstractFeature_1.default {
|
|
|
21
21
|
{ name: '@sprucelabs/test@latest', isDev: true },
|
|
22
22
|
{ name: '@sprucelabs/test-utils@latest', isDev: true },
|
|
23
23
|
{ name: '@sprucelabs/jest-json-reporter@latest', isDev: true },
|
|
24
|
-
{ name: '@sprucelabs/spruce-test-fixtures@latest', isDev: true },
|
|
25
24
|
{ name: 'jest-circus', isDev: true },
|
|
26
25
|
{ name: 'jest', isDev: true },
|
|
27
26
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestFeature.js","sourceRoot":"","sources":["../../../src/features/test/TestFeature.ts"],"names":[],"mappings":";;;;;AAAA,uEAAkE;AAClE,uEAAyD;AACzD,2EAAkD;AAGlD,wFAA2D;AAC3D,yEAAuE;AACvE,iFAAwD;AAkBxD,MAAqB,WAAY,SAAQ,yBAAe;IAC7C,YAAY,GAAG,SAAS,CAAA;IACxB,WAAW,GAAG,iCAAiC,CAAA;IAC/C,IAAI,GAAgB,MAAM,CAAA;IAC1B,YAAY,GAAwB;QACvC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;QACpC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;KACrC,CAAA;IACM,mBAAmB,GAAiB;QACvC,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,IAAI,EAAE;QAChD,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,IAAI,EAAE;QACtD,EAAE,IAAI,EAAE,uCAAuC,EAAE,KAAK,EAAE,IAAI,EAAE;QAC9D,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"TestFeature.js","sourceRoot":"","sources":["../../../src/features/test/TestFeature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { SpruceSchemas } from './../../../.spruce/schemas/schemas.types';
|
|
2
2
|
import AbstractAction from '../../AbstractAction';
|
|
3
3
|
import { FeatureActionResponse } from '../../features.types';
|
|
4
|
-
type OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema;
|
|
5
|
-
type Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions;
|
|
6
4
|
export default class CreateAction extends AbstractAction<OptionsSchema> {
|
|
7
5
|
optionsSchema: SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema;
|
|
8
6
|
invocationMessage: string;
|
|
@@ -12,4 +10,6 @@ export default class CreateAction extends AbstractAction<OptionsSchema> {
|
|
|
12
10
|
private optionallyInstallFeatureBasedOnSelection;
|
|
13
11
|
private buildParentClassFromCandidate;
|
|
14
12
|
}
|
|
13
|
+
type OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema;
|
|
14
|
+
type Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions;
|
|
15
15
|
export {};
|
|
@@ -15,10 +15,8 @@ class CreateAction extends AbstractAction_1.default {
|
|
|
15
15
|
const normalizedOptions = this.validateAndNormalizeOptions(options);
|
|
16
16
|
const { testDestinationDir, namePascal, nameCamel, type } = normalizedOptions;
|
|
17
17
|
let resolvedDestination = spruce_skill_utils_2.diskUtil.resolvePath(this.cwd, testDestinationDir, type);
|
|
18
|
-
this.ui.startLoading('Checking potential parent test classes');
|
|
19
|
-
const testFeature = this.parent;
|
|
20
|
-
this.ui.stopLoading();
|
|
21
18
|
let parentTestClass;
|
|
19
|
+
const testFeature = this.parent;
|
|
22
20
|
const candidates = await testFeature.buildParentClassCandidates();
|
|
23
21
|
if (spruce_skill_utils_2.diskUtil.doesDirExist(resolvedDestination)) {
|
|
24
22
|
resolvedDestination =
|
|
@@ -30,11 +28,13 @@ class CreateAction extends AbstractAction_1.default {
|
|
|
30
28
|
}
|
|
31
29
|
this.ui.startLoading('Generating test file...');
|
|
32
30
|
const writer = this.Writer('test');
|
|
33
|
-
const
|
|
31
|
+
const isTestFixturesInstalled = !!this.Service('pkg').get('devDependencies.@sprucelabs/spruce-test-fixtures');
|
|
32
|
+
const results = await writer.writeTest(resolvedDestination, {
|
|
34
33
|
...normalizedOptions,
|
|
35
34
|
type,
|
|
36
35
|
nameCamel,
|
|
37
36
|
parentTestClass,
|
|
37
|
+
isTestFixturesInstalled,
|
|
38
38
|
namePascal: namePascal ?? spruce_skill_utils_1.namesUtil.toPascal(nameCamel),
|
|
39
39
|
});
|
|
40
40
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAction.js","sourceRoot":"","sources":["../../../../src/features/test/actions/CreateAction.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2B;AAC3B,uEAA0D;AAC1D,uEAAyD;AAEzD,8HAAmG;AACnG,0EAAiD;
|
|
1
|
+
{"version":3,"file":"CreateAction.js","sourceRoot":"","sources":["../../../../src/features/test/actions/CreateAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TestOptions } from '@sprucelabs/spruce-templates';
|
|
2
2
|
import AbstractWriter from '../../../writers/AbstractWriter';
|
|
3
|
-
export default class
|
|
4
|
-
|
|
3
|
+
export default class TestWriter extends AbstractWriter {
|
|
4
|
+
writeTest(destinationDir: string, options: TestOptions & {
|
|
5
5
|
type: string;
|
|
6
6
|
}): Promise<import("../../../writers/AbstractWriter").WriteResults>;
|
|
7
7
|
}
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const path_1 = __importDefault(require("path"));
|
|
7
7
|
const AbstractWriter_1 = __importDefault(require("../../../writers/AbstractWriter"));
|
|
8
|
-
class
|
|
9
|
-
async
|
|
8
|
+
class TestWriter extends AbstractWriter_1.default {
|
|
9
|
+
async writeTest(destinationDir, options) {
|
|
10
10
|
const { namePascal } = options;
|
|
11
11
|
const filename = `${namePascal}.test.ts`;
|
|
12
12
|
const resolvedDestination = path_1.default.join(destinationDir, filename);
|
|
@@ -15,5 +15,5 @@ class TestGenerator extends AbstractWriter_1.default {
|
|
|
15
15
|
return results;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
exports.default =
|
|
18
|
+
exports.default = TestWriter;
|
|
19
19
|
//# sourceMappingURL=TestWriter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestWriter.js","sourceRoot":"","sources":["../../../../src/features/test/writers/TestWriter.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2B;AAE3B,qFAA4D;AAE5D,MAAqB,
|
|
1
|
+
{"version":3,"file":"TestWriter.js","sourceRoot":"","sources":["../../../../src/features/test/writers/TestWriter.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2B;AAE3B,qFAA4D;AAE5D,MAAqB,UAAW,SAAQ,wBAAc;IAC3C,KAAK,CAAC,SAAS,CAClB,cAAsB,EACtB,OAAuC;QAEvC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QAC9B,MAAM,QAAQ,GAAG,GAAG,UAAU,UAAU,CAAA;QAExC,MAAM,mBAAmB,GAAG,cAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEhD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,8BAA8B,CACrD,mBAAmB,EACnB,WAAW,EACX,QAAQ,OAAO,CAAC,IAAI,QAAQ,CAC/B,CAAA;QAED,OAAO,OAAO,CAAA;IAClB,CAAC;CACJ;AAnBD,6BAmBC"}
|
|
@@ -12,7 +12,7 @@ import SandboxWriter from '../features/sandbox/writers/SandboxWriter';
|
|
|
12
12
|
import SchemaWriter from '../features/schema/writers/SchemaWriter';
|
|
13
13
|
import SkillGenerator from '../features/skill/writers/SkillWriter';
|
|
14
14
|
import StoreWriter from '../features/store/writers/StoreWriter';
|
|
15
|
-
import
|
|
15
|
+
import TestWriter from '../features/test/writers/TestWriter';
|
|
16
16
|
import ViewWriter from '../features/view/writers/ViewWriter';
|
|
17
17
|
import VsCodeWriter from '../features/vscode/writers/VsCodeWriter';
|
|
18
18
|
import LintService from '../services/LintService';
|
|
@@ -42,7 +42,7 @@ export interface WriterMap {
|
|
|
42
42
|
event: EventWriter;
|
|
43
43
|
schema: SchemaWriter;
|
|
44
44
|
skill: SkillGenerator;
|
|
45
|
-
test:
|
|
45
|
+
test: TestWriter;
|
|
46
46
|
node: NodeWriter;
|
|
47
47
|
vscode: VsCodeWriter;
|
|
48
48
|
conversation: ConversationWriter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriterFactory.js","sourceRoot":"","sources":["../../src/writers/WriterFactory.ts"],"names":[],"mappings":";;;;;AAEA,6GAAoF;AACpF,2FAAkE;AAClE,wFAA+D;AAC/D,wFAA+D;AAC/D,kFAAyD;AACzD,qFAA4D;AAC5D,uGAA8E;AAC9E,2FAAkE;AAClE,8FAAqE;AACrE,2FAAkE;AAClE,wFAAkE;AAClE,wFAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"WriterFactory.js","sourceRoot":"","sources":["../../src/writers/WriterFactory.ts"],"names":[],"mappings":";;;;;AAEA,6GAAoF;AACpF,2FAAkE;AAClE,wFAA+D;AAC/D,wFAA+D;AAC/D,kFAAyD;AACzD,qFAA4D;AAC5D,uGAA8E;AAC9E,2FAAkE;AAClE,8FAAqE;AACrE,2FAAkE;AAClE,wFAAkE;AAClE,wFAA+D;AAC/D,qFAA4D;AAC5D,qFAA4D;AAC5D,2FAAkE;AAMlE,MAAM,QAAQ,GAAG;IACb,KAAK,EAAE,qBAAW;IAClB,KAAK,EAAE,qBAAW;IAClB,MAAM,EAAE,sBAAY;IACpB,KAAK,EAAE,qBAAc;IACrB,IAAI,EAAE,oBAAU;IAChB,IAAI,EAAE,oBAAU;IAChB,MAAM,EAAE,sBAAY;IACpB,YAAY,EAAE,4BAAkB;IAChC,MAAM,EAAE,sBAAY;IACpB,OAAO,EAAE,uBAAa;IACtB,KAAK,EAAE,qBAAW;IAClB,IAAI,EAAE,oBAAU;IAChB,GAAG,EAAE,mBAAS;IACd,MAAM,EAAE,sBAAY;IACpB,UAAU,EAAE,0BAAgB;CAC/B,CAAA;AAED,MAAqB,aAAa;IACtB,SAAS,CAAW;IACpB,EAAE,CAAmB;IACrB,MAAM,CAAc;IACpB,QAAQ,CAAyB;IAEjC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAElC,YAAmB,OAKlB;QACG,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAEnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAK;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAgB,EAAE,MAAW;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;IAChC,CAAC;IAEM,MAAM,CACT,IAAO,EACP,OAEC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE1C,OAAO,IAAI,KAAK,CAAC;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACrB,CAAiB,CAAA;IACtB,CAAC;;AA7CL,gCA8CC"}
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
|
-
"version": "21.0.
|
|
21
|
+
"version": "21.0.15",
|
|
22
22
|
"bin": {
|
|
23
23
|
"spruce": "./build/index.js"
|
|
24
24
|
},
|
|
@@ -74,18 +74,18 @@
|
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@jest/reporters": "^29.7.0",
|
|
77
|
-
"@sprucelabs/error": "^6.0.
|
|
77
|
+
"@sprucelabs/error": "^6.0.25",
|
|
78
78
|
"@sprucelabs/globby": "^2.0.14",
|
|
79
|
-
"@sprucelabs/heartwood-view-controllers": "^110.2.
|
|
80
|
-
"@sprucelabs/jest-json-reporter": "^8.0.
|
|
81
|
-
"@sprucelabs/mercury-client": "^42.0.
|
|
82
|
-
"@sprucelabs/mercury-event-emitter": "^42.0.
|
|
83
|
-
"@sprucelabs/mercury-types": "^47.0.
|
|
84
|
-
"@sprucelabs/schema": "^30.0.
|
|
85
|
-
"@sprucelabs/spruce-core-schemas": "^40.0.
|
|
86
|
-
"@sprucelabs/spruce-event-utils": "^40.0.
|
|
87
|
-
"@sprucelabs/spruce-skill-utils": "^31.0.
|
|
88
|
-
"@sprucelabs/spruce-templates": "^21.0.
|
|
79
|
+
"@sprucelabs/heartwood-view-controllers": "^110.2.27",
|
|
80
|
+
"@sprucelabs/jest-json-reporter": "^8.0.28",
|
|
81
|
+
"@sprucelabs/mercury-client": "^42.0.62",
|
|
82
|
+
"@sprucelabs/mercury-event-emitter": "^42.0.62",
|
|
83
|
+
"@sprucelabs/mercury-types": "^47.0.46",
|
|
84
|
+
"@sprucelabs/schema": "^30.0.46",
|
|
85
|
+
"@sprucelabs/spruce-core-schemas": "^40.0.41",
|
|
86
|
+
"@sprucelabs/spruce-event-utils": "^40.0.47",
|
|
87
|
+
"@sprucelabs/spruce-skill-utils": "^31.0.49",
|
|
88
|
+
"@sprucelabs/spruce-templates": "^21.0.15",
|
|
89
89
|
"@typescript-eslint/eslint-plugin": "^7.7.1",
|
|
90
90
|
"@typescript-eslint/parser": "^7.7.1",
|
|
91
91
|
"cfonts": "^3.2.0",
|
|
@@ -112,23 +112,23 @@
|
|
|
112
112
|
"uuid": "^9.0.1"
|
|
113
113
|
},
|
|
114
114
|
"devDependencies": {
|
|
115
|
-
"@sprucelabs/data-stores": "^28.0.
|
|
115
|
+
"@sprucelabs/data-stores": "^28.0.16",
|
|
116
116
|
"@sprucelabs/jest-sheets-reporter": "^3.0.26",
|
|
117
|
-
"@sprucelabs/mercury-core-events": "^24.0.
|
|
118
|
-
"@sprucelabs/resolve-path-aliases": "^2.0.
|
|
119
|
-
"@sprucelabs/spruce-conversation-plugin": "^62.0.
|
|
120
|
-
"@sprucelabs/spruce-deploy-plugin": "^62.0.
|
|
121
|
-
"@sprucelabs/spruce-store-plugin": "^62.0.
|
|
122
|
-
"@sprucelabs/spruce-test-fixtures": "^62.0.
|
|
123
|
-
"@sprucelabs/test": "^9.0.
|
|
124
|
-
"@sprucelabs/test-utils": "^5.0.
|
|
117
|
+
"@sprucelabs/mercury-core-events": "^24.0.56",
|
|
118
|
+
"@sprucelabs/resolve-path-aliases": "^2.0.23",
|
|
119
|
+
"@sprucelabs/spruce-conversation-plugin": "^62.0.53",
|
|
120
|
+
"@sprucelabs/spruce-deploy-plugin": "^62.0.53",
|
|
121
|
+
"@sprucelabs/spruce-store-plugin": "^62.0.53",
|
|
122
|
+
"@sprucelabs/spruce-test-fixtures": "^62.0.53",
|
|
123
|
+
"@sprucelabs/test": "^9.0.14",
|
|
124
|
+
"@sprucelabs/test-utils": "^5.0.36",
|
|
125
125
|
"@types/blessed": "^0.1.25",
|
|
126
126
|
"@types/eslint": "^8.56.10",
|
|
127
127
|
"@types/fs-extra": "^11.0.4",
|
|
128
128
|
"@types/inquirer": "^9.0.7",
|
|
129
129
|
"@types/lodash": "^4.17.1",
|
|
130
130
|
"@types/md5": "^2.3.5",
|
|
131
|
-
"@types/node": "^20.12.
|
|
131
|
+
"@types/node": "^20.12.12",
|
|
132
132
|
"@types/promise.allsettled": "^1.0.6",
|
|
133
133
|
"@types/ps-node": "^0.1.3",
|
|
134
134
|
"@types/semver": "^7.5.8",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"conventional-changelog-sprucelabs": "^2.0.1",
|
|
143
143
|
"dotenv": "^16.4.5",
|
|
144
144
|
"eslint": "^9.2.0",
|
|
145
|
-
"eslint-config-spruce": "^11.2.
|
|
145
|
+
"eslint-config-spruce": "^11.2.18",
|
|
146
146
|
"find-process": "^1.4.7",
|
|
147
147
|
"jest": "^29.7.0",
|
|
148
148
|
"jest-circus": "^29.7.0",
|
|
@@ -591,5 +591,5 @@
|
|
|
591
591
|
"open"
|
|
592
592
|
]
|
|
593
593
|
},
|
|
594
|
-
"gitHead": "
|
|
594
|
+
"gitHead": "266337927cccd506ed5caac1314d1fa6161fb760"
|
|
595
595
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { diskUtil } from '@sprucelabs/spruce-skill-utils'
|
|
2
|
+
import { assert, test } from '@sprucelabs/test-utils'
|
|
3
|
+
import ActionQuestionAskerImpl, {
|
|
4
|
+
ActionQuestionAsker,
|
|
5
|
+
QuestionAskerOptionsOptions,
|
|
6
|
+
} from '../../../features/ActionQuestionAsker'
|
|
7
|
+
import { FeatureInstallResponse } from '../../../features/features.types'
|
|
8
|
+
import AbstractCliTest from '../../../tests/AbstractCliTest'
|
|
9
|
+
|
|
10
|
+
const ABSTRACT_SPRUCE_TEST_IDX = '-1'
|
|
11
|
+
|
|
12
|
+
export default class TestsInModulesDontUseLoginDecoratorTest extends AbstractCliTest {
|
|
13
|
+
protected static async beforeEach() {
|
|
14
|
+
await super.beforeEach()
|
|
15
|
+
ActionQuestionAskerImpl.Class = StubQuestionAsker
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@test()
|
|
19
|
+
protected static async creatingATestInModuleDoesNotComeWithDecorator() {
|
|
20
|
+
await this.installSkill('testsInNodeModule')
|
|
21
|
+
const contents = await this.createTestValidateAndGetContents()
|
|
22
|
+
assert.doesNotInclude(contents, 'spruce-test-fixtures')
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@test()
|
|
26
|
+
protected static async creatingATestInSkillComesWithLoginDecorator() {
|
|
27
|
+
await this.installSkill('tests')
|
|
28
|
+
const contents = await this.createTestValidateAndGetContents()
|
|
29
|
+
assert.doesInclude(contents, 'spruce-test-fixtures')
|
|
30
|
+
assert.doesInclude(contents, /^@fake\.login\(\)/m)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
private static async createTestValidateAndGetContents() {
|
|
34
|
+
const promise = this.Action('test', 'create').execute({
|
|
35
|
+
type: 'behavioral',
|
|
36
|
+
nameReadable: 'test',
|
|
37
|
+
nameCamel: 'test',
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
await this.ui.waitForInput()
|
|
41
|
+
await this.ui.sendInput(ABSTRACT_SPRUCE_TEST_IDX)
|
|
42
|
+
|
|
43
|
+
const results = await promise
|
|
44
|
+
|
|
45
|
+
await this.assertValidActionResponseFiles(results)
|
|
46
|
+
|
|
47
|
+
const testFile = results.files![0].path
|
|
48
|
+
const contents = diskUtil.readFile(testFile)
|
|
49
|
+
return contents
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private static async installSkill(key: string) {
|
|
53
|
+
await this.FeatureFixture().installCachedFeatures(key)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
class StubQuestionAsker implements ActionQuestionAsker<'test'> {
|
|
58
|
+
public async installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse> {
|
|
59
|
+
return {}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public async askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(
|
|
63
|
+
_isInstalled: boolean,
|
|
64
|
+
options?: QuestionAskerOptionsOptions<'test'>
|
|
65
|
+
) {
|
|
66
|
+
return options ?? {}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
public async askAboutMissingActionOptions() {
|
|
70
|
+
return undefined
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public async installOurFeature(): Promise<FeatureInstallResponse> {
|
|
74
|
+
return {}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -71,6 +71,7 @@ export default class OrganizationStoreTest extends AbstractCliTest {
|
|
|
71
71
|
@test()
|
|
72
72
|
protected static async canGetMyOrgs() {
|
|
73
73
|
await this.FeatureFixture().installCachedFeatures('organizations')
|
|
74
|
+
|
|
74
75
|
const orgFixture = this.getOrganizationFixture()
|
|
75
76
|
const org1 = await orgFixture.seedDemoOrg({
|
|
76
77
|
name: 'A cool org',
|
|
@@ -5,7 +5,7 @@ import { GlobalEmitter } from '../GlobalEmitter'
|
|
|
5
5
|
import { GraphicsInterface } from '../types/cli.types'
|
|
6
6
|
import actionUtil from '../utilities/action.utility'
|
|
7
7
|
import ActionFactory from './ActionFactory'
|
|
8
|
-
import
|
|
8
|
+
import ActionQuestionAskerImpl from './ActionQuestionAsker'
|
|
9
9
|
import FeatureInstaller from './FeatureInstaller'
|
|
10
10
|
import {
|
|
11
11
|
FeatureCode,
|
|
@@ -90,7 +90,7 @@ export default class ActionExecuter {
|
|
|
90
90
|
|
|
91
91
|
const feature = installer.getFeature(featureCode)
|
|
92
92
|
|
|
93
|
-
const asker =
|
|
93
|
+
const asker = ActionQuestionAskerImpl.Asker({
|
|
94
94
|
featureInstaller: installer,
|
|
95
95
|
feature,
|
|
96
96
|
actionCode,
|
|
@@ -15,20 +15,20 @@ import {
|
|
|
15
15
|
FeatureMap,
|
|
16
16
|
} from './features.types'
|
|
17
17
|
|
|
18
|
-
export default class
|
|
18
|
+
export default class ActionQuestionAskerImpl<
|
|
19
|
+
F extends FeatureCode = FeatureCode,
|
|
20
|
+
> implements ActionQuestionAsker<F>
|
|
21
|
+
{
|
|
19
22
|
private ui: GraphicsInterface
|
|
23
|
+
public static Class?: new (
|
|
24
|
+
options: ActionQuestionAskerOptions
|
|
25
|
+
) => ActionQuestionAsker<any>
|
|
20
26
|
private featureInstaller: FeatureInstaller
|
|
21
27
|
private actionCode: string
|
|
22
28
|
private feature: AbstractFeature
|
|
23
29
|
private shouldAutoHandleDependencies = true
|
|
24
30
|
|
|
25
|
-
|
|
26
|
-
ui: GraphicsInterface
|
|
27
|
-
featureInstaller: FeatureInstaller
|
|
28
|
-
actionCode: string
|
|
29
|
-
feature: AbstractFeature
|
|
30
|
-
shouldAutoHandleDependencies: boolean
|
|
31
|
-
}) {
|
|
31
|
+
protected constructor(options: ActionQuestionAskerOptions) {
|
|
32
32
|
this.ui = options.ui
|
|
33
33
|
this.featureInstaller = options.featureInstaller
|
|
34
34
|
this.actionCode = options.actionCode
|
|
@@ -36,6 +36,10 @@ export default class ActionOptionAsker<F extends FeatureCode = FeatureCode> {
|
|
|
36
36
|
this.shouldAutoHandleDependencies = options.shouldAutoHandleDependencies
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
public static Asker(options: ActionQuestionAskerOptions) {
|
|
40
|
+
return new (this.Class ?? ActionQuestionAskerImpl)(options)
|
|
41
|
+
}
|
|
42
|
+
|
|
39
43
|
public async installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse> {
|
|
40
44
|
const notInstalled = await this.getDependenciesNotInstalled()
|
|
41
45
|
|
|
@@ -122,10 +126,8 @@ export default class ActionOptionAsker<F extends FeatureCode = FeatureCode> {
|
|
|
122
126
|
|
|
123
127
|
public async askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(
|
|
124
128
|
isInstalled: boolean,
|
|
125
|
-
options
|
|
126
|
-
|
|
127
|
-
| undefined
|
|
128
|
-
) {
|
|
129
|
+
options?: Record<string, any> & FeatureCommandExecuteOptions<F>
|
|
130
|
+
): Promise<Record<string, any> & FeatureCommandExecuteOptions<F>> {
|
|
129
131
|
let installOptions = { ...options }
|
|
130
132
|
|
|
131
133
|
if (!isInstalled) {
|
|
@@ -138,15 +140,14 @@ export default class ActionOptionAsker<F extends FeatureCode = FeatureCode> {
|
|
|
138
140
|
installOptions = { ...installOptions, ...answers }
|
|
139
141
|
}
|
|
140
142
|
}
|
|
141
|
-
return installOptions
|
|
143
|
+
return installOptions as Record<string, any> &
|
|
144
|
+
FeatureCommandExecuteOptions<F>
|
|
142
145
|
}
|
|
143
146
|
|
|
144
|
-
public async askAboutMissingActionOptions(
|
|
145
|
-
action: FeatureAction<
|
|
146
|
-
options
|
|
147
|
-
|
|
148
|
-
| undefined
|
|
149
|
-
) {
|
|
147
|
+
public async askAboutMissingActionOptions<S extends Schema>(
|
|
148
|
+
action: FeatureAction<S>,
|
|
149
|
+
options?: Record<string, any> & FeatureCommandExecuteOptions<F>
|
|
150
|
+
): Promise<SchemaValues<S> | undefined> {
|
|
150
151
|
let answers
|
|
151
152
|
|
|
152
153
|
const schema = action.optionsSchema
|
|
@@ -395,3 +396,32 @@ function s(array: any[]) {
|
|
|
395
396
|
function areIs(array: any[]) {
|
|
396
397
|
return array.length === 1 ? 'is' : 'are'
|
|
397
398
|
}
|
|
399
|
+
|
|
400
|
+
interface ActionQuestionAskerOptions {
|
|
401
|
+
ui: GraphicsInterface
|
|
402
|
+
featureInstaller: FeatureInstaller
|
|
403
|
+
actionCode: string
|
|
404
|
+
feature: AbstractFeature
|
|
405
|
+
shouldAutoHandleDependencies: boolean
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
export type QuestionAskerOptionsOptions<F extends FeatureCode> = Record<
|
|
409
|
+
string,
|
|
410
|
+
any
|
|
411
|
+
> &
|
|
412
|
+
FeatureCommandExecuteOptions<F>
|
|
413
|
+
|
|
414
|
+
export interface ActionQuestionAsker<F extends FeatureCode = FeatureCode> {
|
|
415
|
+
installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse>
|
|
416
|
+
askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(
|
|
417
|
+
isInstalled: boolean,
|
|
418
|
+
options?: QuestionAskerOptionsOptions<F>
|
|
419
|
+
): Promise<Record<string, any> & FeatureCommandExecuteOptions<F>>
|
|
420
|
+
askAboutMissingActionOptions<S extends Schema>(
|
|
421
|
+
action: FeatureAction<S>,
|
|
422
|
+
options?: QuestionAskerOptionsOptions<F>
|
|
423
|
+
): Promise<SchemaValues<S> | undefined>
|
|
424
|
+
installOurFeature(
|
|
425
|
+
installOptions: Record<string, any>
|
|
426
|
+
): Promise<FeatureInstallResponse>
|
|
427
|
+
}
|
|
@@ -32,6 +32,7 @@ export default class SkillFeature<
|
|
|
32
32
|
name: '@sprucelabs/mercury-types',
|
|
33
33
|
},
|
|
34
34
|
{ name: 'tsconfig-paths', isDev: true },
|
|
35
|
+
{ name: '@sprucelabs/spruce-test-fixtures@latest', isDev: true },
|
|
35
36
|
{ name: 'ts-node', isDev: true },
|
|
36
37
|
...universalDevDependencies,
|
|
37
38
|
]
|
|
@@ -35,7 +35,6 @@ export default class TestFeature extends AbstractFeature {
|
|
|
35
35
|
{ name: '@sprucelabs/test@latest', isDev: true },
|
|
36
36
|
{ name: '@sprucelabs/test-utils@latest', isDev: true },
|
|
37
37
|
{ name: '@sprucelabs/jest-json-reporter@latest', isDev: true },
|
|
38
|
-
{ name: '@sprucelabs/spruce-test-fixtures@latest', isDev: true },
|
|
39
38
|
{ name: 'jest-circus', isDev: true },
|
|
40
39
|
{ name: 'jest', isDev: true },
|
|
41
40
|
]
|
|
@@ -7,9 +7,6 @@ import AbstractAction from '../../AbstractAction'
|
|
|
7
7
|
import { FeatureActionResponse } from '../../features.types'
|
|
8
8
|
import TestFeature, { ParentClassCandidate } from '../TestFeature'
|
|
9
9
|
|
|
10
|
-
type OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema
|
|
11
|
-
type Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions
|
|
12
|
-
|
|
13
10
|
export default class CreateAction extends AbstractAction<OptionsSchema> {
|
|
14
11
|
public optionsSchema = createTestActionSchema
|
|
15
12
|
public invocationMessage = 'Creating a test... 🛡'
|
|
@@ -25,16 +22,11 @@ export default class CreateAction extends AbstractAction<OptionsSchema> {
|
|
|
25
22
|
type
|
|
26
23
|
)
|
|
27
24
|
|
|
28
|
-
this.ui.startLoading('Checking potential parent test classes')
|
|
29
|
-
|
|
30
|
-
const testFeature = this.parent as TestFeature
|
|
31
|
-
|
|
32
|
-
this.ui.stopLoading()
|
|
33
|
-
|
|
34
25
|
let parentTestClass:
|
|
35
26
|
| undefined
|
|
36
27
|
| { name: string; importPath: string; isDefaultExport: boolean }
|
|
37
28
|
|
|
29
|
+
const testFeature = this.parent as TestFeature
|
|
38
30
|
const candidates = await testFeature.buildParentClassCandidates()
|
|
39
31
|
|
|
40
32
|
if (diskUtil.doesDirExist(resolvedDestination)) {
|
|
@@ -55,11 +47,16 @@ export default class CreateAction extends AbstractAction<OptionsSchema> {
|
|
|
55
47
|
|
|
56
48
|
const writer = this.Writer('test')
|
|
57
49
|
|
|
58
|
-
const
|
|
50
|
+
const isTestFixturesInstalled = !!this.Service('pkg').get(
|
|
51
|
+
'devDependencies.@sprucelabs/spruce-test-fixtures'
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
const results = await writer.writeTest(resolvedDestination, {
|
|
59
55
|
...normalizedOptions,
|
|
60
56
|
type,
|
|
61
57
|
nameCamel,
|
|
62
58
|
parentTestClass,
|
|
59
|
+
isTestFixturesInstalled,
|
|
63
60
|
namePascal: namePascal ?? namesUtil.toPascal(nameCamel),
|
|
64
61
|
})
|
|
65
62
|
|
|
@@ -68,6 +65,7 @@ export default class CreateAction extends AbstractAction<OptionsSchema> {
|
|
|
68
65
|
hints: ["run `spruce test` in your skill when you're ready!"],
|
|
69
66
|
}
|
|
70
67
|
}
|
|
68
|
+
|
|
71
69
|
private async promptForSubDir(resolvedDestination: string) {
|
|
72
70
|
const match = await this.ui.prompt({
|
|
73
71
|
type: 'directory',
|
|
@@ -164,3 +162,6 @@ export default class CreateAction extends AbstractAction<OptionsSchema> {
|
|
|
164
162
|
}
|
|
165
163
|
}
|
|
166
164
|
}
|
|
165
|
+
|
|
166
|
+
type OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema
|
|
167
|
+
type Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions
|
|
@@ -2,8 +2,8 @@ import pathUtil from 'path'
|
|
|
2
2
|
import { TestOptions } from '@sprucelabs/spruce-templates'
|
|
3
3
|
import AbstractWriter from '../../../writers/AbstractWriter'
|
|
4
4
|
|
|
5
|
-
export default class
|
|
6
|
-
public async
|
|
5
|
+
export default class TestWriter extends AbstractWriter {
|
|
6
|
+
public async writeTest(
|
|
7
7
|
destinationDir: string,
|
|
8
8
|
options: TestOptions & { type: string }
|
|
9
9
|
) {
|
|
@@ -12,7 +12,7 @@ import SandboxWriter from '../features/sandbox/writers/SandboxWriter'
|
|
|
12
12
|
import SchemaWriter from '../features/schema/writers/SchemaWriter'
|
|
13
13
|
import SkillGenerator from '../features/skill/writers/SkillWriter'
|
|
14
14
|
import StoreWriter from '../features/store/writers/StoreWriter'
|
|
15
|
-
import
|
|
15
|
+
import TestWriter from '../features/test/writers/TestWriter'
|
|
16
16
|
import ViewWriter from '../features/view/writers/ViewWriter'
|
|
17
17
|
import VsCodeWriter from '../features/vscode/writers/VsCodeWriter'
|
|
18
18
|
import LintService from '../services/LintService'
|
|
@@ -25,7 +25,7 @@ const classMap = {
|
|
|
25
25
|
event: EventWriter,
|
|
26
26
|
schema: SchemaWriter,
|
|
27
27
|
skill: SkillGenerator,
|
|
28
|
-
test:
|
|
28
|
+
test: TestWriter,
|
|
29
29
|
node: NodeWriter,
|
|
30
30
|
vscode: VsCodeWriter,
|
|
31
31
|
conversation: ConversationWriter,
|
|
@@ -91,7 +91,7 @@ export interface WriterMap {
|
|
|
91
91
|
event: EventWriter
|
|
92
92
|
schema: SchemaWriter
|
|
93
93
|
skill: SkillGenerator
|
|
94
|
-
test:
|
|
94
|
+
test: TestWriter
|
|
95
95
|
node: NodeWriter
|
|
96
96
|
vscode: VsCodeWriter
|
|
97
97
|
conversation: ConversationWriter
|