@neurodevs/meta-node 0.14.27 → 0.15.0
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/build/__tests__/AbstractPackageTest.d.ts +4 -0
- package/build/__tests__/AbstractPackageTest.js +11 -1
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/GitAutocloner.test.js +9 -9
- package/build/__tests__/impl/GitAutocloner.test.js.map +1 -1
- package/build/__tests__/impl/GitAutocommit.test.d.ts +11 -0
- package/build/__tests__/impl/GitAutocommit.test.js +49 -0
- package/build/__tests__/impl/GitAutocommit.test.js.map +1 -0
- package/build/__tests__/impl/ImplAutomodule.test.js +26 -8
- package/build/__tests__/impl/ImplAutomodule.test.js.map +1 -1
- package/build/__tests__/impl/NpmAutopackage.test.d.ts +1 -3
- package/build/__tests__/impl/NpmAutopackage.test.js +38 -64
- package/build/__tests__/impl/NpmAutopackage.test.js.map +1 -1
- package/build/__tests__/impl/NpmReleasePropagator.test.d.ts +17 -0
- package/build/__tests__/impl/NpmReleasePropagator.test.js +115 -0
- package/build/__tests__/impl/NpmReleasePropagator.test.js.map +1 -0
- package/build/__tests__/impl/UiAutomodule.test.js +26 -8
- package/build/__tests__/impl/UiAutomodule.test.js.map +1 -1
- package/build/impl/AbstractAutomodule.js +25 -7
- package/build/impl/AbstractAutomodule.js.map +1 -1
- package/build/impl/GitAutocommit.d.ts +15 -0
- package/build/impl/GitAutocommit.js +27 -0
- package/build/impl/GitAutocommit.js.map +1 -0
- package/build/impl/NpmAutopackage.d.ts +1 -9
- package/build/impl/NpmAutopackage.js +11 -48
- package/build/impl/NpmAutopackage.js.map +1 -1
- package/build/impl/NpmReleasePropagator.d.ts +40 -0
- package/build/impl/NpmReleasePropagator.js +78 -0
- package/build/impl/NpmReleasePropagator.js.map +1 -0
- package/build/index.d.ts +8 -0
- package/build/index.js +10 -0
- package/build/index.js.map +1 -1
- package/build/scripts/runImplAutomodule.js +3 -3
- package/build/scripts/runImplAutomodule.js.map +1 -1
- package/build/scripts/runNpmReleasePropagator.d.ts +1 -0
- package/build/scripts/runNpmReleasePropagator.js +8 -0
- package/build/scripts/runNpmReleasePropagator.js.map +1 -0
- package/build/testDoubles/Autocommit/FakeAutocommit.d.ts +11 -0
- package/build/testDoubles/Autocommit/FakeAutocommit.js +18 -0
- package/build/testDoubles/Autocommit/FakeAutocommit.js.map +1 -0
- package/build/testDoubles/ReleasePropagator/FakeReleasePropagator.d.ts +8 -0
- package/build/testDoubles/ReleasePropagator/FakeReleasePropagator.js +15 -0
- package/build/testDoubles/ReleasePropagator/FakeReleasePropagator.js.map +1 -0
- package/package.json +3 -3
- package/src/__tests__/AbstractPackageTest.ts +27 -1
- package/src/__tests__/impl/GitAutocloner.test.ts +13 -9
- package/src/__tests__/impl/GitAutocommit.test.ts +60 -0
- package/src/__tests__/impl/ImplAutomodule.test.ts +34 -8
- package/src/__tests__/impl/NpmAutopackage.test.ts +60 -91
- package/src/__tests__/impl/NpmReleasePropagator.test.ts +151 -0
- package/src/__tests__/impl/UiAutomodule.test.ts +34 -8
- package/src/impl/AbstractAutomodule.ts +33 -7
- package/src/impl/GitAutocommit.ts +40 -0
- package/src/impl/NpmAutopackage.ts +20 -64
- package/src/impl/NpmReleasePropagator.ts +134 -0
- package/src/index.ts +16 -0
- package/src/scripts/runImplAutomodule.ts +3 -3
- package/src/scripts/runNpmReleasePropagator.ts +9 -0
- package/src/testDoubles/Autocommit/FakeAutocommit.ts +26 -0
- package/src/testDoubles/ReleasePropagator/FakeReleasePropagator.ts +23 -0
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import AbstractModuleTest from '@neurodevs/node-tdd';
|
|
2
2
|
export default class AbstractPackageTest extends AbstractModuleTest {
|
|
3
|
+
protected static readonly yarnGlobalDirCmd = "yarn global dir";
|
|
4
|
+
protected static readonly fakeGlobalRoot: string;
|
|
5
|
+
protected static readonly metaNodeVersion: string;
|
|
3
6
|
protected static beforeEach(): Promise<void>;
|
|
4
7
|
protected static normalize(input: string): string;
|
|
5
8
|
protected static readonly vscodeDir: string;
|
|
@@ -23,4 +26,5 @@ export default class AbstractPackageTest extends AbstractModuleTest {
|
|
|
23
26
|
protected static readonly originalKeybindingsFile: string;
|
|
24
27
|
protected static setFakeSnippetsFile(): void;
|
|
25
28
|
protected static setFakeKeybindingsFile(): void;
|
|
29
|
+
protected static setFakeMetaNodeVersion(): void;
|
|
26
30
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { setFakeExecResult, setFakeReadFileResult, } from '@neurodevs/fake-node-core';
|
|
2
3
|
import AbstractModuleTest from '@neurodevs/node-tdd';
|
|
3
4
|
import expandHomeDir from '../functions/expandHomeDir.js';
|
|
4
5
|
export default class AbstractPackageTest extends AbstractModuleTest {
|
|
6
|
+
static yarnGlobalDirCmd = 'yarn global dir';
|
|
7
|
+
static fakeGlobalRoot = this.generateId();
|
|
8
|
+
static metaNodeVersion = this.generateId();
|
|
5
9
|
static async beforeEach() {
|
|
6
10
|
await super.beforeEach();
|
|
7
11
|
}
|
|
@@ -32,5 +36,11 @@ export default class AbstractPackageTest extends AbstractModuleTest {
|
|
|
32
36
|
static setFakeKeybindingsFile() {
|
|
33
37
|
setFakeReadFileResult(this.keybindingsPath, this.originalKeybindingsFile);
|
|
34
38
|
}
|
|
39
|
+
static setFakeMetaNodeVersion() {
|
|
40
|
+
setFakeExecResult(this.yarnGlobalDirCmd, {
|
|
41
|
+
stdout: this.fakeGlobalRoot,
|
|
42
|
+
});
|
|
43
|
+
setFakeReadFileResult(path.join(this.fakeGlobalRoot, 'node_modules', '@neurodevs', 'meta-node', 'package.json'), JSON.stringify({ version: this.metaNodeVersion }));
|
|
44
|
+
}
|
|
35
45
|
}
|
|
36
46
|
//# sourceMappingURL=AbstractPackageTest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPackageTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractPackageTest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractPackageTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractPackageTest.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EACH,iBAAiB,EACjB,qBAAqB,GACxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AAEpD,OAAO,aAAa,MAAM,+BAA+B,CAAA;AAEzD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,kBAAkB;IACrD,MAAM,CAAU,gBAAgB,GAAG,iBAAiB,CAAA;IACpD,MAAM,CAAU,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IAClD,MAAM,CAAU,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IAEnD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;IAC5B,CAAC;IAES,MAAM,CAAC,SAAS,CAAC,KAAa;QACpC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5C,CAAC;IAES,MAAM,CAAU,SAAS,GAAG,aAAa,CAC/C,yCAAyC,CAC5C,CAAA;IAES,MAAM,KAAK,YAAY;QAC7B,OAAO,GAAG,IAAI,CAAC,SAAS,gCAAgC,CAAA;IAC5D,CAAC;IAES,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;IAE7D,MAAM,CAAU,gBAAgB,GAAG;QACzC,GAAG,IAAI,CAAC,eAAe;KAC1B,CAAA;IAES,MAAM,CAAU,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAC3D,IAAI,CAAC,gBAAgB,EACrB,IAAI,EACJ,CAAC,CACJ,CAAA;IAES,MAAM,KAAK,eAAe;QAChC,OAAO,GAAG,IAAI,CAAC,SAAS,mBAAmB,CAAA;IAC/C,CAAC;IAES,MAAM,CAAU,kBAAkB,GAAG;QAC3C,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;QACtB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;KAC7B,CAAA;IAES,MAAM,CAAU,mBAAmB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAE/D,MAAM,CAAU,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAC9D,IAAI,CAAC,mBAAmB,EACxB,IAAI,EACJ,CAAC,CACJ,CAAA;IAES,MAAM,CAAC,mBAAmB;QAChC,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACvE,CAAC;IAES,MAAM,CAAC,sBAAsB;QACnC,qBAAqB,CACjB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,uBAAuB,CAC/B,CAAA;IACL,CAAC;IAES,MAAM,CAAC,sBAAsB;QACnC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACrC,MAAM,EAAE,IAAI,CAAC,cAAc;SACH,CAAC,CAAA;QAE7B,qBAAqB,CACjB,IAAI,CAAC,IAAI,CACL,IAAI,CAAC,cAAc,EACnB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,CACjB,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CACpD,CAAA;IACL,CAAC"}
|
|
@@ -48,14 +48,14 @@ export default class AutoclonerTest extends AbstractPackageTest {
|
|
|
48
48
|
static async callsGitCloneForEachUrl() {
|
|
49
49
|
await this.run();
|
|
50
50
|
this.urls.forEach((url) => {
|
|
51
|
-
assert.
|
|
51
|
+
assert.isTrue(callsToExec.some((call) => call?.command === `git clone ${url}`));
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
static async doesNotCallGitCloneIfUrlExists() {
|
|
55
55
|
this.setUrlsShouldExist();
|
|
56
56
|
resetCallsToExec();
|
|
57
57
|
await this.run();
|
|
58
|
-
assert.isLength(callsToExec.filter((call) => call.startsWith('git clone')), 0);
|
|
58
|
+
assert.isLength(callsToExec.filter((call) => call?.command.startsWith('git clone')), 0);
|
|
59
59
|
}
|
|
60
60
|
static async throwsIfGitCloneFails() {
|
|
61
61
|
GitAutocloner.exec = (_command) => {
|
|
@@ -70,34 +70,34 @@ export default class AutoclonerTest extends AbstractPackageTest {
|
|
|
70
70
|
}
|
|
71
71
|
static async callsYarnInstallAfterCloningFirstRepo() {
|
|
72
72
|
await this.run();
|
|
73
|
-
assert.isEqualDeep(callsToExec[1], `yarn --cwd ./${this.packageNameA} install`, 'Should call yarn install after cloning first package!');
|
|
73
|
+
assert.isEqualDeep(callsToExec[1]?.command, `yarn --cwd ./${this.packageNameA} install`, 'Should call yarn install after cloning first package!');
|
|
74
74
|
}
|
|
75
75
|
static async callsYarnInstallAfterCloningSecondRepo() {
|
|
76
76
|
await this.run();
|
|
77
|
-
assert.isEqualDeep(callsToExec[3], `yarn --cwd ./${this.packageNameB} install`, 'Should call yarn install after cloning second package!');
|
|
77
|
+
assert.isEqualDeep(callsToExec[3]?.command, `yarn --cwd ./${this.packageNameB} install`, 'Should call yarn install after cloning second package!');
|
|
78
78
|
}
|
|
79
79
|
static async callsGitPullIfFirstRepoExists() {
|
|
80
80
|
await this.setUrlsShouldExistAndRun();
|
|
81
|
-
assert.isEqualDeep(callsToExec[0], this.gitPullPackageA, 'Should call git pull if first repo exists!');
|
|
81
|
+
assert.isEqualDeep(callsToExec[0]?.command, this.gitPullPackageA, 'Should call git pull if first repo exists!');
|
|
82
82
|
}
|
|
83
83
|
static async callsGitPullIfSecondRepoExists() {
|
|
84
84
|
await this.setUrlsShouldExistAndRun();
|
|
85
|
-
assert.isEqualDeep(callsToExec[2], this.gitPullPackageB, 'Should call git pull if second repo exists!');
|
|
85
|
+
assert.isEqualDeep(callsToExec[2]?.command, this.gitPullPackageB, 'Should call git pull if second repo exists!');
|
|
86
86
|
}
|
|
87
87
|
static async callsYarnInstallIfFirstChangesWerePulled() {
|
|
88
88
|
this.fakeGitPullChanges();
|
|
89
89
|
await this.setUrlsShouldExistAndRun();
|
|
90
|
-
assert.isEqualDeep(callsToExec[1], `yarn --cwd ./${this.packageNameA} install`, 'Should call yarn install after pulling first package!');
|
|
90
|
+
assert.isEqualDeep(callsToExec[1]?.command, `yarn --cwd ./${this.packageNameA} install`, 'Should call yarn install after pulling first package!');
|
|
91
91
|
}
|
|
92
92
|
static async callsYarnInstallIfSecondChangesWerePulled() {
|
|
93
93
|
this.fakeGitPullChanges();
|
|
94
94
|
await this.setUrlsShouldExistAndRun();
|
|
95
|
-
assert.isEqualDeep(callsToExec[3], `yarn --cwd ./${this.packageNameB} install`, 'Should call yarn install after pulling second package!');
|
|
95
|
+
assert.isEqualDeep(callsToExec[3]?.command, `yarn --cwd ./${this.packageNameB} install`, 'Should call yarn install after pulling second package!');
|
|
96
96
|
}
|
|
97
97
|
static async doesNotCallYarnInstallIfNoChangesPulled() {
|
|
98
98
|
this.fakeGitPullUpToDate();
|
|
99
99
|
await this.setUrlsShouldExistAndRun();
|
|
100
|
-
assert.isLength(callsToExec.filter((call) => call.startsWith('yarn --cwd ./')), 0, 'Should not call yarn install if no changes were pulled!');
|
|
100
|
+
assert.isLength(callsToExec.filter((call) => call?.command.startsWith('yarn --cwd ./')), 0, 'Should not call yarn install if no changes were pulled!');
|
|
101
101
|
}
|
|
102
102
|
static run(options) {
|
|
103
103
|
return this.instance.run({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitAutocloner.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/GitAutocloner.test.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAgB,IAAI,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EACH,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,aAGN,MAAM,6BAA6B,CAAA;AACpC,OAAO,mBAAmB,MAAM,2BAA2B,CAAA;AAE3D,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEhC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,mBAAmB;IACnD,MAAM,CAAC,QAAQ,CAAY;IAE3B,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IACvC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IAEvC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAEjD,MAAM,CAAC,WAAW,CAAC,WAAmB;QAC1C,OAAO,sBAAsB,WAAW,MAAM,CAAA;IAClD,CAAC;IAEO,MAAM,CAAU,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAE7C,MAAM,KAAK,eAAe;QAC9B,OAAO,YAAY,IAAI,CAAC,YAAY,OAAO,CAAA;IAC/C,CAAC;IAEO,MAAM,KAAK,eAAe;QAC9B,OAAO,YAAY,IAAI,CAAC,YAAY,OAAO,CAAA;IAC/C,CAAC;IAES,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAExB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACxC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mBAAmB;QACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAA;IACnE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,2BAA2B;QAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CACzC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAC7C,CAAA;QAED,MAAM,CAAC,OAAO,CACV,GAAG,CAAC,OAAO,EACX,2BAA2B,IAAI,CAAC,cAAc,GAAG,EACjD,qCAAqC,CACxC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gCAAgC;QACnD,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;QAEhB,MAAM,CAAC,OAAO,CACV,YAAY,CAAC,CAAC,CAAC,EACf,IAAI,CAAC,YAAY,EACjB,iDAAiD,CACpD,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,uBAAuB;QAC1C,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;QAEhB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"GitAutocloner.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/GitAutocloner.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import AbstractModuleTest from '@neurodevs/node-tdd';
|
|
2
|
+
export default class GitAutocommitTest extends AbstractModuleTest {
|
|
3
|
+
private static instance;
|
|
4
|
+
private static readonly commitMessage;
|
|
5
|
+
private static readonly currentWorkingDir;
|
|
6
|
+
protected static beforeEach(): Promise<void>;
|
|
7
|
+
protected static createsInstance(): Promise<void>;
|
|
8
|
+
protected static callsExecThreeTimes(): Promise<void>;
|
|
9
|
+
private static setFakeExec;
|
|
10
|
+
private static GitAutocommit;
|
|
11
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { exec as execSync } from 'node:child_process';
|
|
8
|
+
import { promisify } from 'node:util';
|
|
9
|
+
import { callsToExec, fakeExec, resetCallsToExec, } from '@neurodevs/fake-node-core';
|
|
10
|
+
import AbstractModuleTest, { test, assert } from '@neurodevs/node-tdd';
|
|
11
|
+
import GitAutocommit from '../../impl/GitAutocommit.js';
|
|
12
|
+
const exec = promisify(execSync);
|
|
13
|
+
export default class GitAutocommitTest extends AbstractModuleTest {
|
|
14
|
+
static instance;
|
|
15
|
+
static commitMessage = this.generateId();
|
|
16
|
+
static currentWorkingDir = this.generateId();
|
|
17
|
+
static async beforeEach() {
|
|
18
|
+
await super.beforeEach();
|
|
19
|
+
this.setFakeExec();
|
|
20
|
+
this.instance = await this.GitAutocommit();
|
|
21
|
+
}
|
|
22
|
+
static async createsInstance() {
|
|
23
|
+
assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
24
|
+
}
|
|
25
|
+
static async callsExecThreeTimes() {
|
|
26
|
+
assert.isEqualDeep(callsToExec, [
|
|
27
|
+
{ command: 'git add .', options: { cwd: this.currentWorkingDir } },
|
|
28
|
+
{
|
|
29
|
+
command: `git commit -m "${this.commitMessage}"`,
|
|
30
|
+
options: { cwd: this.currentWorkingDir },
|
|
31
|
+
},
|
|
32
|
+
{ command: 'git push', options: { cwd: this.currentWorkingDir } },
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
static setFakeExec() {
|
|
36
|
+
GitAutocommit.exec = fakeExec;
|
|
37
|
+
resetCallsToExec();
|
|
38
|
+
}
|
|
39
|
+
static async GitAutocommit(commitMessage, workingDir) {
|
|
40
|
+
return GitAutocommit.Create(commitMessage ?? this.commitMessage, workingDir ?? this.currentWorkingDir);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
__decorate([
|
|
44
|
+
test()
|
|
45
|
+
], GitAutocommitTest, "createsInstance", null);
|
|
46
|
+
__decorate([
|
|
47
|
+
test()
|
|
48
|
+
], GitAutocommitTest, "callsExecThreeTimes", null);
|
|
49
|
+
//# sourceMappingURL=GitAutocommit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitAutocommit.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/GitAutocommit.test.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EACH,WAAW,EACX,QAAQ,EACR,gBAAgB,GACnB,MAAM,2BAA2B,CAAA;AAClC,OAAO,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEtE,OAAO,aAA6B,MAAM,6BAA6B,CAAA;AAEvE,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEhC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,kBAAkB;IACrD,MAAM,CAAC,QAAQ,CAAY;IAE3B,MAAM,CAAU,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IACjD,MAAM,CAAU,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IAEnD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;IAC9C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IAChE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mBAAmB;QACtC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE;YAC5B,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAClE;gBACI,OAAO,EAAE,kBAAkB,IAAI,CAAC,aAAa,GAAG;gBAChD,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE;aAC3C;YACD,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE;SACpE,CAAC,CAAA;IACN,CAAC;IAEO,MAAM,CAAC,WAAW;QACtB,aAAa,CAAC,IAAI,GAAG,QAAkC,CAAA;QACvD,gBAAgB,EAAE,CAAA;IACtB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,aAAa,CAC9B,aAAsB,EACtB,UAAmB;QAEnB,OAAO,aAAa,CAAC,MAAM,CACvB,aAAa,IAAI,IAAI,CAAC,aAAa,EACnC,UAAU,IAAI,IAAI,CAAC,iBAAiB,CACvC,CAAA;IACL,CAAC;;AA7BsB;IADtB,IAAI,EAAE;8CAGN;AAGsB;IADtB,IAAI,EAAE;kDAUN"}
|
|
@@ -72,7 +72,7 @@ export default class ImplAutomoduleTest extends AbstractAutomoduleTest {
|
|
|
72
72
|
}
|
|
73
73
|
static async bumpsMinorVersionWithYarn() {
|
|
74
74
|
await this.run();
|
|
75
|
-
assert.isEqualDeep(callsToExec[0], 'yarn version --minor --no-git-tag-version', 'Did not bump minor version!');
|
|
75
|
+
assert.isEqualDeep(callsToExec[0]?.command, 'yarn version --minor --no-git-tag-version', 'Did not bump minor version!');
|
|
76
76
|
}
|
|
77
77
|
static interfaceName = `B-${this.generateId()}`;
|
|
78
78
|
static implName = this.generateId();
|
|
@@ -152,16 +152,34 @@ export default class ImplAutomoduleTest extends AbstractAutomoduleTest {
|
|
|
152
152
|
`;
|
|
153
153
|
}
|
|
154
154
|
static get sortedIndexFile() {
|
|
155
|
-
const blocks =
|
|
155
|
+
const blocks = this.originalIndexFile
|
|
156
156
|
.split(/(?=\/\/)/)
|
|
157
157
|
.map((s) => s.trim())
|
|
158
158
|
.filter(Boolean);
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
159
|
+
const newBlock = this.indexFilePattern.trim();
|
|
160
|
+
const newKey = newBlock
|
|
161
|
+
.match(/^\/\/\s*([^\n]*)/)?.[1]
|
|
162
|
+
?.trim()
|
|
163
|
+
.toLowerCase() ?? '';
|
|
164
|
+
let inserted = false;
|
|
165
|
+
const result = [];
|
|
166
|
+
for (const block of blocks) {
|
|
167
|
+
if (!inserted) {
|
|
168
|
+
const blockKey = block
|
|
169
|
+
.match(/^\/\/\s*([^\n]*)/)?.[1]
|
|
170
|
+
?.trim()
|
|
171
|
+
.toLowerCase() ?? '';
|
|
172
|
+
if (newKey.localeCompare(blockKey) < 0) {
|
|
173
|
+
result.push(newBlock);
|
|
174
|
+
inserted = true;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
result.push(block);
|
|
178
|
+
}
|
|
179
|
+
if (!inserted) {
|
|
180
|
+
result.push(newBlock);
|
|
181
|
+
}
|
|
182
|
+
return result.join('\n\n');
|
|
165
183
|
}
|
|
166
184
|
static ImplAutomodule() {
|
|
167
185
|
return ImplAutomodule.Create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImplAutomodule.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/ImplAutomodule.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ImplAutomodule.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/ImplAutomodule.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,8 +55,6 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
55
55
|
private static readonly setupVscodeCmd;
|
|
56
56
|
private static readonly checkGenerateIdVersionCmd;
|
|
57
57
|
private static readonly checkNodeTddVersionCmd;
|
|
58
|
-
private static readonly yarnGlobalDirCmd;
|
|
59
|
-
private static readonly fakeGlobalRoot;
|
|
60
58
|
private static orderJsonKeys;
|
|
61
59
|
private static fakeChdir;
|
|
62
60
|
private static fakeExec;
|
|
@@ -65,6 +63,7 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
65
63
|
private static fakePathExists;
|
|
66
64
|
private static fakeReadFile;
|
|
67
65
|
private static fakeWriteFile;
|
|
66
|
+
private static setFakeAutocommit;
|
|
68
67
|
private static fakeFetchForRepoNotFound;
|
|
69
68
|
private static readonly installDir;
|
|
70
69
|
private static readonly name;
|
|
@@ -75,7 +74,6 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
75
74
|
private static readonly license;
|
|
76
75
|
private static readonly author;
|
|
77
76
|
private static readonly githubToken;
|
|
78
|
-
private static readonly metaNodeVersion;
|
|
79
77
|
private static readonly randomId;
|
|
80
78
|
private static get reposUrl();
|
|
81
79
|
private static get orgsUrl();
|
|
@@ -5,11 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { exec as execSync } from 'child_process';
|
|
8
|
-
import path from 'path';
|
|
9
8
|
import { promisify } from 'util';
|
|
10
9
|
import { callsToChdir, callsToExec, callsToFetch, callsToMkdir, callsToReadFile, callsToWriteFile, fakeChdir, fakeExec, fakeFetch, fakeMkdir, fakePathExists, fakeReadFile, fakeWriteFile, resetCallsToChdir, resetCallsToExec, resetCallsToFetch, resetCallsToMkdir, resetCallsToPathExists, resetCallsToReadFile, resetCallsToWriteFile, setFakeExecResult, setFakeFetchResponse, setFakeReadFileResult, setPathShouldExist, } from '@neurodevs/fake-node-core';
|
|
11
10
|
import { test, assert } from '@neurodevs/node-tdd';
|
|
11
|
+
import GitAutocommit from '../../impl/GitAutocommit.js';
|
|
12
12
|
import NpmAutopackage from '../../impl/NpmAutopackage.js';
|
|
13
|
+
import FakeAutocommit from '../../testDoubles/Autocommit/FakeAutocommit.js';
|
|
13
14
|
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
14
15
|
const exec = promisify(execSync);
|
|
15
16
|
export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
@@ -23,6 +24,7 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
23
24
|
this.fakePathExists();
|
|
24
25
|
this.fakeReadFile();
|
|
25
26
|
this.fakeWriteFile();
|
|
27
|
+
this.setFakeAutocommit();
|
|
26
28
|
this.fakeFetchForRepoNotFound();
|
|
27
29
|
process.env.GITHUB_TOKEN = this.githubToken;
|
|
28
30
|
this.instance = this.NpmAutopackage();
|
|
@@ -68,7 +70,7 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
68
70
|
}
|
|
69
71
|
static async thenGitClone() {
|
|
70
72
|
await this.run();
|
|
71
|
-
assert.isEqual(callsToExec[0], `git clone https://github.com/${this.gitNamespace}/${this.name}.git`, 'Did not call git clone!');
|
|
73
|
+
assert.isEqual(callsToExec[0]?.command, `git clone https://github.com/${this.gitNamespace}/${this.name}.git`, 'Did not call git clone!');
|
|
72
74
|
}
|
|
73
75
|
static async thenChdirToPackageDir() {
|
|
74
76
|
await this.run();
|
|
@@ -76,23 +78,19 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
76
78
|
}
|
|
77
79
|
static async thenGitFetchOrigin() {
|
|
78
80
|
await this.run();
|
|
79
|
-
assert.isEqual(callsToExec[1], `git fetch origin`, 'Did not call git fetch origin!');
|
|
81
|
+
assert.isEqual(callsToExec[1]?.command, `git fetch origin`, 'Did not call git fetch origin!');
|
|
80
82
|
}
|
|
81
83
|
static async thenGitFetchResetHard() {
|
|
82
84
|
await this.run();
|
|
83
|
-
assert.isEqual(callsToExec[2], `git reset --hard origin/main`, 'Did not call git reset hard!');
|
|
85
|
+
assert.isEqual(callsToExec[2]?.command, `git reset --hard origin/main`, 'Did not call git reset hard!');
|
|
84
86
|
}
|
|
85
87
|
static async thenSpruceCreateModule() {
|
|
86
88
|
await this.run();
|
|
87
|
-
assert.isEqual(callsToExec[4], this.createModuleCmd, 'Did not call "spruce create.module"!');
|
|
89
|
+
assert.isEqual(callsToExec[4]?.command, this.createModuleCmd, 'Did not call "spruce create.module"!');
|
|
88
90
|
}
|
|
89
91
|
static async thenCommitCreatePackage() {
|
|
90
92
|
await this.run();
|
|
91
|
-
assert.isEqualDeep(
|
|
92
|
-
'git add .',
|
|
93
|
-
`git commit -m "patch: create package (@neurodevs/meta-node: ${this.metaNodeVersion})"`,
|
|
94
|
-
'git push',
|
|
95
|
-
], 'Did not commit create package changes!');
|
|
93
|
+
assert.isEqualDeep(FakeAutocommit.callsToConstructor[0]?.commitMessage, `patch: create package (@neurodevs/meta-node: ${this.metaNodeVersion})`, 'Did not commit create package changes!');
|
|
96
94
|
}
|
|
97
95
|
static async thenReadPackageJson() {
|
|
98
96
|
await this.run();
|
|
@@ -138,11 +136,7 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
138
136
|
}
|
|
139
137
|
static async thenCommitUpdatePackage() {
|
|
140
138
|
await this.run();
|
|
141
|
-
assert.isEqualDeep(
|
|
142
|
-
'git add .',
|
|
143
|
-
`git commit -m "patch: update package.json (@neurodevs/meta-node: ${this.metaNodeVersion})"`,
|
|
144
|
-
'git push',
|
|
145
|
-
], 'Did not commit update package changes!');
|
|
139
|
+
assert.isEqualDeep(FakeAutocommit.callsToConstructor[1]?.commitMessage, `patch: update package.json (@neurodevs/meta-node: ${this.metaNodeVersion})`, 'Did not commit update package changes!');
|
|
146
140
|
}
|
|
147
141
|
static async thenAddBuildDirToGitignore() {
|
|
148
142
|
await this.run();
|
|
@@ -154,23 +148,15 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
154
148
|
}
|
|
155
149
|
static async thenCommitUpdateGitignore() {
|
|
156
150
|
await this.run();
|
|
157
|
-
assert.isEqualDeep(
|
|
158
|
-
'git add .',
|
|
159
|
-
`git commit -m "patch: add build dir to gitignore (@neurodevs/meta-node: ${this.metaNodeVersion})"`,
|
|
160
|
-
'git push',
|
|
161
|
-
], 'Did not commit .gitignore changes!');
|
|
151
|
+
assert.isEqualDeep(FakeAutocommit.callsToConstructor[2]?.commitMessage, `patch: add build dir to gitignore (@neurodevs/meta-node: ${this.metaNodeVersion})`, 'Did not commit .gitignore changes!');
|
|
162
152
|
}
|
|
163
153
|
static async thenSpruceSetupVscode() {
|
|
164
154
|
await this.run();
|
|
165
|
-
assert.isEqual(callsToExec[
|
|
155
|
+
assert.isEqual(callsToExec[5]?.command, this.setupVscodeCmd, 'Did not call "spruce setup.vscode"!');
|
|
166
156
|
}
|
|
167
157
|
static async thenCommitVscodeChanges() {
|
|
168
158
|
await this.run();
|
|
169
|
-
assert.isEqualDeep(
|
|
170
|
-
'git add .',
|
|
171
|
-
`git commit -m "patch: setup vscode (@neurodevs/meta-node: ${this.metaNodeVersion})"`,
|
|
172
|
-
'git push',
|
|
173
|
-
], 'Did not commit vscode changes!');
|
|
159
|
+
assert.isEqualDeep(FakeAutocommit.callsToConstructor[3]?.commitMessage, `patch: setup vscode (@neurodevs/meta-node: ${this.metaNodeVersion})`, 'Did not commit vscode changes!');
|
|
174
160
|
}
|
|
175
161
|
static async thenUpdatesVscodeTasksJson() {
|
|
176
162
|
await this.run();
|
|
@@ -182,23 +168,15 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
182
168
|
}
|
|
183
169
|
static async thenCommitsUpdateVscodeTasksJson() {
|
|
184
170
|
await this.run();
|
|
185
|
-
assert.isEqualDeep(
|
|
186
|
-
'git add .',
|
|
187
|
-
`git commit -m "patch: update vscode tasks.json (@neurodevs/meta-node: ${this.metaNodeVersion})"`,
|
|
188
|
-
'git push',
|
|
189
|
-
], 'Did not commit updated vscode tasks.json changes!');
|
|
171
|
+
assert.isEqualDeep(FakeAutocommit.callsToConstructor[4]?.commitMessage, `patch: update vscode tasks.json (@neurodevs/meta-node: ${this.metaNodeVersion})`, 'Did not commit updated vscode tasks.json changes!');
|
|
190
172
|
}
|
|
191
173
|
static async thenInstallsDefaultDevDependencies() {
|
|
192
174
|
await this.run();
|
|
193
|
-
assert.isEqual(callsToExec[
|
|
175
|
+
assert.isEqual(callsToExec[8]?.command, this.yarnInstallDevDepsCommand, 'Did not install default devDependencies!');
|
|
194
176
|
}
|
|
195
177
|
static async thenCommitsInstallDefaultDevDependencies() {
|
|
196
178
|
await this.run();
|
|
197
|
-
assert.isEqualDeep(
|
|
198
|
-
'git add .',
|
|
199
|
-
`git commit -m "patch: install default devDependencies (@neurodevs/meta-node: ${this.metaNodeVersion})"`,
|
|
200
|
-
'git push',
|
|
201
|
-
], 'Did not commit install devDependencies changes!');
|
|
179
|
+
assert.isEqualDeep(FakeAutocommit.callsToConstructor[5]?.commitMessage, `patch: install default devDependencies (@neurodevs/meta-node: ${this.metaNodeVersion})`, 'Did not commit install devDependencies changes!');
|
|
202
180
|
}
|
|
203
181
|
static async thenInstallsTestsDirectory() {
|
|
204
182
|
await this.run();
|
|
@@ -217,15 +195,11 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
217
195
|
}
|
|
218
196
|
static async thenCommitsInstallAbstractPackageTest() {
|
|
219
197
|
await this.run();
|
|
220
|
-
assert.isEqualDeep(
|
|
221
|
-
'git add .',
|
|
222
|
-
`git commit -m "patch: install AbstractPackageTest (@neurodevs/meta-node: ${this.metaNodeVersion})"`,
|
|
223
|
-
'git push',
|
|
224
|
-
], 'Did not commit install AbstractPackageTest changes!');
|
|
198
|
+
assert.isEqualDeep(FakeAutocommit.callsToConstructor[6]?.commitMessage, `patch: install AbstractPackageTest (@neurodevs/meta-node: ${this.metaNodeVersion})`, 'Did not commit install AbstractPackageTest changes!');
|
|
225
199
|
}
|
|
226
200
|
static async lastlyOpensVscodeAtEnd() {
|
|
227
201
|
await this.run();
|
|
228
|
-
assert.isEqual(callsToExec[
|
|
202
|
+
assert.isEqual(callsToExec[9]?.command, 'code .', 'Did not open vscode at end!');
|
|
229
203
|
}
|
|
230
204
|
static async doesNotCreateRepoInGithubOrgIfDone() {
|
|
231
205
|
const fakeResponse = new Response(null, {
|
|
@@ -239,36 +213,38 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
239
213
|
}
|
|
240
214
|
static async doesNotCloneRepoIfDone() {
|
|
241
215
|
await this.createAndRunAutopackage();
|
|
242
|
-
assert.isEqual(callsToExec.filter((
|
|
216
|
+
assert.isEqual(callsToExec.filter((call) => call?.command ===
|
|
243
217
|
`git clone https://github.com/${this.gitNamespace}/${this.name}.git`).length, 1, 'Did not clone repo once!');
|
|
244
218
|
}
|
|
245
219
|
static async doesNotSpruceCreateModuleIfDone() {
|
|
246
220
|
await this.createAndRunAutopackage();
|
|
247
|
-
assert.isEqual(callsToExec.filter((
|
|
221
|
+
assert.isEqual(callsToExec.filter((call) => call?.command === this.createModuleCmd)
|
|
222
|
+
.length, 1, 'Did not call spruce create.module once!');
|
|
248
223
|
}
|
|
249
224
|
static async doesNotRunSetupVscodeIfDone() {
|
|
250
225
|
await this.createAndRunAutopackage();
|
|
251
|
-
assert.isEqual(callsToExec.filter((
|
|
226
|
+
assert.isEqual(callsToExec.filter((call) => call?.command === this.setupVscodeCmd)
|
|
227
|
+
.length, 1, 'Did not call spruce setup.vscode once!');
|
|
252
228
|
}
|
|
253
229
|
static async doesNotCommitCreatePackageIfDone() {
|
|
254
230
|
await this.createAndRunAutopackage();
|
|
255
|
-
assert.isEqual(
|
|
256
|
-
`
|
|
231
|
+
assert.isEqual(FakeAutocommit.callsToConstructor.filter((call) => call?.commitMessage ===
|
|
232
|
+
`patch: create package (@neurodevs/meta-node: ${this.metaNodeVersion})`).length, 1, 'Did not commit create package changes once!');
|
|
257
233
|
}
|
|
258
234
|
static async doesNotCommitUpdatePackageIfDone() {
|
|
259
235
|
await this.createAndRunAutopackage();
|
|
260
|
-
assert.isEqual(
|
|
261
|
-
`
|
|
236
|
+
assert.isEqual(FakeAutocommit.callsToConstructor.filter((call) => call?.commitMessage ===
|
|
237
|
+
`patch: update package.json (@neurodevs/meta-node: ${this.metaNodeVersion})`).length, 1, 'Did not commit update package changes once!');
|
|
262
238
|
}
|
|
263
239
|
static async doesNotCommitUpdateGitignoreIfDone() {
|
|
264
240
|
await this.createAndRunAutopackage();
|
|
265
|
-
assert.isEqual(
|
|
266
|
-
`
|
|
241
|
+
assert.isEqual(FakeAutocommit.callsToConstructor.filter((call) => call?.commitMessage ===
|
|
242
|
+
`patch: add build dir to gitignore (@neurodevs/meta-node: ${this.metaNodeVersion})`).length, 1, 'Did not commit gitignore changes once!');
|
|
267
243
|
}
|
|
268
244
|
static async doesNotCommitSetupVscodeIfDone() {
|
|
269
245
|
await this.createAndRunAutopackage();
|
|
270
|
-
assert.isEqual(
|
|
271
|
-
`
|
|
246
|
+
assert.isEqual(FakeAutocommit.callsToConstructor.filter((call) => call?.commitMessage ===
|
|
247
|
+
`patch: setup vscode (@neurodevs/meta-node: ${this.metaNodeVersion})`).length, 1, 'Did not commit vscode changes once!');
|
|
272
248
|
}
|
|
273
249
|
static async doesNotOverrideOriginalDependencies() {
|
|
274
250
|
await this.createAndRunAutopackage();
|
|
@@ -283,14 +259,14 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
283
259
|
static async doesNotOpenVscodeIfNotCloned() {
|
|
284
260
|
setPathShouldExist(this.name, true);
|
|
285
261
|
await this.createAndRunAutopackage();
|
|
286
|
-
assert.isFalse(callsToExec.
|
|
262
|
+
assert.isFalse(callsToExec.some((call) => call?.command === 'code .'), 'Should not open vscode if not cloned!');
|
|
287
263
|
}
|
|
288
264
|
static async installsDevDependenciesIfGenerateIdNotLatest() {
|
|
289
265
|
setFakeExecResult(this.checkGenerateIdVersionCmd, {
|
|
290
266
|
stdout: '0.0.1',
|
|
291
267
|
});
|
|
292
268
|
await this.createAndRunAutopackage();
|
|
293
|
-
const calls = callsToExec.filter((
|
|
269
|
+
const calls = callsToExec.filter((call) => call?.command === this.yarnInstallDevDepsCommand);
|
|
294
270
|
assert.isEqual(calls.length, 1, 'Should not install default devDependencies if already installed!');
|
|
295
271
|
}
|
|
296
272
|
static async installsDevDependenciesIfNodeTddNotLatest() {
|
|
@@ -301,7 +277,7 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
301
277
|
stdout: '0.0.1',
|
|
302
278
|
});
|
|
303
279
|
await this.createAndRunAutopackage();
|
|
304
|
-
const calls = callsToExec.filter((
|
|
280
|
+
const calls = callsToExec.filter((call) => call?.command === this.yarnInstallDevDepsCommand);
|
|
305
281
|
assert.isEqual(calls.length, 1, 'Should not install default devDependencies if already installed!');
|
|
306
282
|
}
|
|
307
283
|
static async doesNotThrowIfGenerateIdNotInPackageJson() {
|
|
@@ -350,8 +326,6 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
350
326
|
static setupVscodeCmd = 'spruce setup.vscode --all true';
|
|
351
327
|
static checkGenerateIdVersionCmd = `yarn info @neurodevs/generate-id version --silent`;
|
|
352
328
|
static checkNodeTddVersionCmd = `yarn info @neurodevs/node-tdd version --silent`;
|
|
353
|
-
static yarnGlobalDirCmd = 'yarn global dir';
|
|
354
|
-
static fakeGlobalRoot = this.generateId();
|
|
355
329
|
static orderJsonKeys(json, keyOrder) {
|
|
356
330
|
const ordered = {};
|
|
357
331
|
for (const key of keyOrder) {
|
|
@@ -374,10 +348,7 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
374
348
|
static fakeExec() {
|
|
375
349
|
NpmAutopackage.exec = fakeExec;
|
|
376
350
|
resetCallsToExec();
|
|
377
|
-
|
|
378
|
-
stdout: this.fakeGlobalRoot,
|
|
379
|
-
});
|
|
380
|
-
setFakeReadFileResult(path.join(this.fakeGlobalRoot, 'node_modules', '@neurodevs', 'meta-node', 'package.json'), JSON.stringify({ version: this.metaNodeVersion }));
|
|
351
|
+
this.setFakeMetaNodeVersion();
|
|
381
352
|
}
|
|
382
353
|
static fakeFetch() {
|
|
383
354
|
NpmAutopackage.fetch = fakeFetch;
|
|
@@ -402,6 +373,10 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
402
373
|
NpmAutopackage.writeFile = fakeWriteFile;
|
|
403
374
|
resetCallsToWriteFile();
|
|
404
375
|
}
|
|
376
|
+
static setFakeAutocommit() {
|
|
377
|
+
GitAutocommit.Class = FakeAutocommit;
|
|
378
|
+
FakeAutocommit.resetTestDouble();
|
|
379
|
+
}
|
|
405
380
|
static fakeFetchForRepoNotFound() {
|
|
406
381
|
const fakeResponse = new Response(null, {
|
|
407
382
|
status: 404,
|
|
@@ -418,7 +393,6 @@ export default class NpmAutopackageTest extends AbstractPackageTest {
|
|
|
418
393
|
static license = this.generateId();
|
|
419
394
|
static author = this.generateId();
|
|
420
395
|
static githubToken = this.generateId();
|
|
421
|
-
static metaNodeVersion = this.generateId();
|
|
422
396
|
static randomId = this.generateId();
|
|
423
397
|
static get reposUrl() {
|
|
424
398
|
return `https://api.github.com/repos/${this.gitNamespace}/${this.name}`;
|