@neurodevs/meta-node 0.7.0 → 0.9.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__/AbstractAutomoduleTest.d.ts +17 -0
- package/build/__tests__/AbstractAutomoduleTest.js +56 -0
- package/build/__tests__/AbstractAutomoduleTest.js.map +1 -0
- package/build/__tests__/modules/ImplAutomodule.test.d.ts +3 -13
- package/build/__tests__/modules/ImplAutomodule.test.js +15 -50
- package/build/__tests__/modules/ImplAutomodule.test.js.map +1 -1
- package/build/__tests__/modules/UiAutomodule.test.d.ts +16 -0
- package/build/__tests__/modules/UiAutomodule.test.js +168 -0
- package/build/__tests__/modules/UiAutomodule.test.js.map +1 -0
- package/build/index.d.ts +4 -0
- package/build/index.js +7 -1
- package/build/index.js.map +1 -1
- package/build/modules/AbstractAutomodule.d.ts +44 -0
- package/build/modules/AbstractAutomodule.js +79 -0
- package/build/modules/AbstractAutomodule.js.map +1 -0
- package/build/modules/ImplAutomodule.d.ts +10 -32
- package/build/modules/ImplAutomodule.js +20 -64
- package/build/modules/ImplAutomodule.js.map +1 -1
- package/build/modules/NpmAutopackage.d.ts +3 -3
- package/build/modules/NpmAutopackage.js +8 -7
- package/build/modules/NpmAutopackage.js.map +1 -1
- package/build/modules/UiAutomodule.d.ts +20 -0
- package/build/modules/UiAutomodule.js +123 -0
- package/build/modules/UiAutomodule.js.map +1 -0
- package/build/scripts/{runAutomodule.js → runImplAutomodule.js} +1 -1
- package/build/scripts/runImplAutomodule.js.map +1 -0
- package/build/scripts/runUiAutomodule.d.ts +1 -0
- package/build/scripts/runUiAutomodule.js +22 -0
- package/build/scripts/runUiAutomodule.js.map +1 -0
- package/build/testDoubles/Automodule/FakeAutomodule.d.ts +7 -4
- package/build/testDoubles/Automodule/FakeAutomodule.js +6 -6
- package/build/testDoubles/Automodule/FakeAutomodule.js.map +1 -1
- package/build/types.d.ts +8 -0
- package/build/types.js +3 -0
- package/build/types.js.map +1 -0
- package/package.json +2 -3
- package/src/__tests__/AbstractAutomoduleTest.ts +83 -0
- package/src/__tests__/modules/ImplAutomodule.test.ts +17 -78
- package/src/__tests__/modules/UiAutomodule.test.ts +174 -0
- package/src/index.ts +6 -0
- package/src/modules/AbstractAutomodule.ts +133 -0
- package/src/modules/ImplAutomodule.ts +32 -98
- package/src/modules/NpmAutopackage.ts +8 -7
- package/src/modules/UiAutomodule.ts +143 -0
- package/src/scripts/runUiAutomodule.ts +23 -0
- package/src/testDoubles/Automodule/FakeAutomodule.ts +10 -6
- package/src/types.ts +9 -0
- package/build/scripts/runAutomodule.js.map +0 -1
- /package/build/scripts/{runAutomodule.d.ts → runImplAutomodule.d.ts} +0 -0
- /package/src/scripts/{runAutomodule.ts → runImplAutomodule.ts} +0 -0
|
@@ -1,54 +1,32 @@
|
|
|
1
1
|
import { exec as execSync } from 'child_process';
|
|
2
|
-
import { readFile
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { readFile } from 'fs/promises';
|
|
3
|
+
import { Automodule, BaseAutomoduleOptions } from '../types';
|
|
4
|
+
import AbstractAutomodule from './AbstractAutomodule';
|
|
5
|
+
export default class ImplAutomodule extends AbstractAutomodule implements Automodule {
|
|
6
|
+
static Class?: ImplAutomoduleConstructor;
|
|
6
7
|
static exec: typeof execSync.__promisify__;
|
|
7
|
-
static pathExists: typeof pathExists;
|
|
8
8
|
static readFile: typeof readFile;
|
|
9
|
-
static writeFile: typeof writeFile;
|
|
10
|
-
private testSaveDir;
|
|
11
|
-
private moduleSaveDir;
|
|
12
|
-
private fakeSaveDir;
|
|
13
9
|
private interfaceName;
|
|
14
10
|
private implName;
|
|
15
11
|
private originalIndexFile;
|
|
16
|
-
protected constructor(options:
|
|
17
|
-
static Create(options:
|
|
12
|
+
protected constructor(options: ImplAutomoduleOptions);
|
|
13
|
+
static Create(options: ImplAutomoduleOptions): Automodule;
|
|
18
14
|
run(): Promise<void>;
|
|
19
|
-
private
|
|
20
|
-
private throwIfTestDirDoesNotExist;
|
|
21
|
-
private throwIfModuleDirDoesNotExist;
|
|
22
|
-
private throwIfFakeDirDoesNotExist;
|
|
23
|
-
private throw;
|
|
24
|
-
private createTestFile;
|
|
25
|
-
private get testFileName();
|
|
26
|
-
private createModuleFile;
|
|
27
|
-
private get moduleFileName();
|
|
28
|
-
private createFakeFile;
|
|
29
|
-
private get fakeFileName();
|
|
15
|
+
private generateFiles;
|
|
30
16
|
private updateIndexFileExports;
|
|
31
17
|
private loadOriginalIndexFile;
|
|
32
18
|
private readonly indexFilePath;
|
|
33
19
|
private get sortedIndexFile();
|
|
34
20
|
private bumpMinorVersion;
|
|
35
21
|
private get exec();
|
|
36
|
-
private get pathExists();
|
|
37
22
|
private get readFile();
|
|
38
|
-
private get writeFile();
|
|
39
23
|
private get testFilePattern();
|
|
40
24
|
private get moduleFilePattern();
|
|
41
25
|
private get fakeFilePattern();
|
|
42
26
|
private get indexFilePattern();
|
|
43
27
|
}
|
|
44
|
-
export
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
export type AutomoduleConstructor = new (options: AutomoduleOptions) => Automodule;
|
|
48
|
-
export interface AutomoduleOptions {
|
|
49
|
-
testSaveDir: string;
|
|
50
|
-
moduleSaveDir: string;
|
|
51
|
-
fakeSaveDir: string;
|
|
28
|
+
export type ImplAutomoduleConstructor = new (options: ImplAutomoduleOptions) => Automodule;
|
|
29
|
+
export interface ImplAutomoduleOptions extends BaseAutomoduleOptions {
|
|
52
30
|
interfaceName: string;
|
|
53
31
|
implName: string;
|
|
54
32
|
}
|
|
@@ -5,16 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const child_process_1 = require("child_process");
|
|
7
7
|
const promises_1 = require("fs/promises");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
8
|
const util_1 = require("util");
|
|
10
|
-
const
|
|
11
|
-
class ImplAutomodule {
|
|
9
|
+
const AbstractAutomodule_1 = __importDefault(require("./AbstractAutomodule"));
|
|
10
|
+
class ImplAutomodule extends AbstractAutomodule_1.default {
|
|
12
11
|
constructor(options) {
|
|
13
|
-
this.indexFilePath = './src/index.ts';
|
|
14
12
|
const { testSaveDir, moduleSaveDir, fakeSaveDir, interfaceName, implName, } = options;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
super({
|
|
14
|
+
testSaveDir,
|
|
15
|
+
moduleSaveDir,
|
|
16
|
+
fakeSaveDir,
|
|
17
|
+
});
|
|
18
|
+
this.indexFilePath = './src/index.ts';
|
|
18
19
|
this.interfaceName = interfaceName;
|
|
19
20
|
this.implName = implName;
|
|
20
21
|
}
|
|
@@ -22,56 +23,19 @@ class ImplAutomodule {
|
|
|
22
23
|
return new (this.Class ?? this)(options);
|
|
23
24
|
}
|
|
24
25
|
async run() {
|
|
25
|
-
await this.
|
|
26
|
-
await this.createTestFile();
|
|
27
|
-
await this.createModuleFile();
|
|
28
|
-
await this.createFakeFile();
|
|
26
|
+
await this.generateFiles();
|
|
29
27
|
await this.updateIndexFileExports();
|
|
30
28
|
await this.bumpMinorVersion();
|
|
31
29
|
}
|
|
32
|
-
async
|
|
33
|
-
await this.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
async throwIfModuleDirDoesNotExist() {
|
|
44
|
-
const moduleDirExists = await this.pathExists(this.moduleSaveDir);
|
|
45
|
-
if (!moduleDirExists) {
|
|
46
|
-
this.throw(`moduleSaveDir does not exist: ${this.moduleSaveDir}!`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
async throwIfFakeDirDoesNotExist() {
|
|
50
|
-
const fakeDirExists = await this.pathExists(this.fakeSaveDir);
|
|
51
|
-
if (!fakeDirExists) {
|
|
52
|
-
this.throw(`fakeSaveDir does not exist: ${this.fakeSaveDir}!`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
throw(err) {
|
|
56
|
-
throw new Error(err);
|
|
57
|
-
}
|
|
58
|
-
async createTestFile() {
|
|
59
|
-
await this.writeFile(this.testFileName, this.testFilePattern);
|
|
60
|
-
}
|
|
61
|
-
get testFileName() {
|
|
62
|
-
return path_1.default.join(this.testSaveDir, `${this.implName}.test.ts`);
|
|
63
|
-
}
|
|
64
|
-
async createModuleFile() {
|
|
65
|
-
await this.writeFile(this.moduleFileName, this.moduleFilePattern);
|
|
66
|
-
}
|
|
67
|
-
get moduleFileName() {
|
|
68
|
-
return path_1.default.join(this.moduleSaveDir, `${this.implName}.ts`);
|
|
69
|
-
}
|
|
70
|
-
async createFakeFile() {
|
|
71
|
-
await this.writeFile(this.fakeFileName, this.fakeFilePattern);
|
|
72
|
-
}
|
|
73
|
-
get fakeFileName() {
|
|
74
|
-
return path_1.default.join(this.fakeSaveDir, `Fake${this.interfaceName}.ts`);
|
|
30
|
+
async generateFiles() {
|
|
31
|
+
await this.runAbstract({
|
|
32
|
+
testFileName: `${this.implName}.test.ts`,
|
|
33
|
+
testFileContent: this.testFilePattern,
|
|
34
|
+
moduleFileName: `${this.implName}.ts`,
|
|
35
|
+
moduleFileContent: this.moduleFilePattern,
|
|
36
|
+
fakeFileName: `Fake${this.interfaceName}.ts`,
|
|
37
|
+
fakeFileContent: this.fakeFilePattern,
|
|
38
|
+
});
|
|
75
39
|
}
|
|
76
40
|
async updateIndexFileExports() {
|
|
77
41
|
this.originalIndexFile = await this.loadOriginalIndexFile();
|
|
@@ -98,15 +62,9 @@ class ImplAutomodule {
|
|
|
98
62
|
get exec() {
|
|
99
63
|
return ImplAutomodule.exec;
|
|
100
64
|
}
|
|
101
|
-
get pathExists() {
|
|
102
|
-
return ImplAutomodule.pathExists;
|
|
103
|
-
}
|
|
104
65
|
get readFile() {
|
|
105
66
|
return ImplAutomodule.readFile;
|
|
106
67
|
}
|
|
107
|
-
get writeFile() {
|
|
108
|
-
return ImplAutomodule.writeFile;
|
|
109
|
-
}
|
|
110
68
|
get testFilePattern() {
|
|
111
69
|
return `
|
|
112
70
|
import AbstractSpruceTest, { test, assert } from '@sprucelabs/test-utils'
|
|
@@ -114,10 +72,10 @@ class ImplAutomodule {
|
|
|
114
72
|
|
|
115
73
|
export default class ${this.implName}Test extends AbstractSpruceTest {
|
|
116
74
|
private static instance: ${this.interfaceName}
|
|
117
|
-
|
|
75
|
+
|
|
118
76
|
protected static async beforeEach() {
|
|
119
77
|
await super.beforeEach()
|
|
120
|
-
|
|
78
|
+
|
|
121
79
|
this.instance = this.${this.implName}()
|
|
122
80
|
}
|
|
123
81
|
|
|
@@ -181,8 +139,6 @@ class ImplAutomodule {
|
|
|
181
139
|
}
|
|
182
140
|
}
|
|
183
141
|
ImplAutomodule.exec = (0, util_1.promisify)(child_process_1.exec);
|
|
184
|
-
ImplAutomodule.pathExists = fs_extra_1.pathExists;
|
|
185
142
|
ImplAutomodule.readFile = promises_1.readFile;
|
|
186
|
-
ImplAutomodule.writeFile = promises_1.writeFile;
|
|
187
143
|
exports.default = ImplAutomodule;
|
|
188
144
|
//# sourceMappingURL=ImplAutomodule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImplAutomodule.js","sourceRoot":"","sources":["../../src/modules/ImplAutomodule.ts"],"names":[],"mappings":";;;;;AAAA,iDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"ImplAutomodule.js","sourceRoot":"","sources":["../../src/modules/ImplAutomodule.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,10 +38,10 @@ export default class NpmAutopackage implements Autopackage {
|
|
|
38
38
|
private gitAddAll;
|
|
39
39
|
private gitCommitCreatePackage;
|
|
40
40
|
private gitPush;
|
|
41
|
-
private
|
|
41
|
+
private updatePackageJson;
|
|
42
42
|
private loadPackageJsonFile;
|
|
43
43
|
private get isPackageUpToDate();
|
|
44
|
-
private
|
|
44
|
+
private updatePackageJsonFile;
|
|
45
45
|
private get updatedJsonFile();
|
|
46
46
|
private get scopedPackage();
|
|
47
47
|
private orderJsonKeys;
|
|
@@ -51,7 +51,7 @@ export default class NpmAutopackage implements Autopackage {
|
|
|
51
51
|
private loadGitignoreFile;
|
|
52
52
|
private get gitignorePath();
|
|
53
53
|
private get isGitignoreUpdated();
|
|
54
|
-
private
|
|
54
|
+
private updateGitignoreFile;
|
|
55
55
|
private commitUpdateGitignore;
|
|
56
56
|
private gitCommitUpdateGitignore;
|
|
57
57
|
private setupVscode;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const child_process_1 = require("child_process");
|
|
4
4
|
const promises_1 = require("fs/promises");
|
|
5
|
+
const process_1 = require("process");
|
|
5
6
|
const util_1 = require("util");
|
|
6
7
|
const fs_extra_1 = require("fs-extra");
|
|
7
8
|
class NpmAutopackage {
|
|
@@ -25,7 +26,7 @@ class NpmAutopackage {
|
|
|
25
26
|
await this.cloneGitRepo();
|
|
26
27
|
this.chdirToPackageDir();
|
|
27
28
|
await this.spruceCreateModule();
|
|
28
|
-
await this.
|
|
29
|
+
await this.updatePackageJson();
|
|
29
30
|
await this.updateGitignore();
|
|
30
31
|
await this.setupVscode();
|
|
31
32
|
}
|
|
@@ -108,11 +109,11 @@ class NpmAutopackage {
|
|
|
108
109
|
async gitPush() {
|
|
109
110
|
await this.exec('git push');
|
|
110
111
|
}
|
|
111
|
-
async
|
|
112
|
+
async updatePackageJson() {
|
|
112
113
|
this.originalJsonFile = await this.loadPackageJsonFile();
|
|
113
114
|
if (!this.isPackageUpToDate) {
|
|
114
115
|
console.log('Updating package.json...');
|
|
115
|
-
await this.
|
|
116
|
+
await this.updatePackageJsonFile();
|
|
116
117
|
await this.commitUpdatePackage();
|
|
117
118
|
}
|
|
118
119
|
}
|
|
@@ -126,7 +127,7 @@ class NpmAutopackage {
|
|
|
126
127
|
return (JSON.stringify(this.originalJsonFile) ==
|
|
127
128
|
JSON.stringify(this.updatedJsonFile));
|
|
128
129
|
}
|
|
129
|
-
async
|
|
130
|
+
async updatePackageJsonFile() {
|
|
130
131
|
const ordered = this.orderJsonKeys(this.updatedJsonFile, [
|
|
131
132
|
'name',
|
|
132
133
|
'version',
|
|
@@ -198,7 +199,7 @@ class NpmAutopackage {
|
|
|
198
199
|
this.originalGitignoreFile = await this.loadGitignoreFile();
|
|
199
200
|
if (!this.isGitignoreUpdated) {
|
|
200
201
|
console.log('Updating .gitignore...');
|
|
201
|
-
await this.
|
|
202
|
+
await this.updateGitignoreFile();
|
|
202
203
|
await this.commitUpdateGitignore();
|
|
203
204
|
}
|
|
204
205
|
}
|
|
@@ -216,7 +217,7 @@ class NpmAutopackage {
|
|
|
216
217
|
.map((line) => line.trim());
|
|
217
218
|
return lines.includes('build/');
|
|
218
219
|
}
|
|
219
|
-
async
|
|
220
|
+
async updateGitignoreFile() {
|
|
220
221
|
await this.writeFile(this.gitignorePath, '\nbuild/\n', {
|
|
221
222
|
encoding: 'utf-8',
|
|
222
223
|
flag: 'a',
|
|
@@ -271,7 +272,7 @@ class NpmAutopackage {
|
|
|
271
272
|
return NpmAutopackage.writeFile;
|
|
272
273
|
}
|
|
273
274
|
}
|
|
274
|
-
NpmAutopackage.chdir =
|
|
275
|
+
NpmAutopackage.chdir = process_1.chdir;
|
|
275
276
|
NpmAutopackage.exec = (0, util_1.promisify)(child_process_1.exec);
|
|
276
277
|
NpmAutopackage.fetch = fetch;
|
|
277
278
|
NpmAutopackage.pathExists = fs_extra_1.pathExists;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NpmAutopackage.js","sourceRoot":"","sources":["../../src/modules/NpmAutopackage.ts"],"names":[],"mappings":";;AAAA,iDAAgD;AAChD,0CAAiD;AACjD,+BAAgC;AAChC,uCAAqC;AAErC,MAAqB,cAAc;IAoB/B,YAAsB,OAA2B;QAC7C,MAAM,EACF,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,OAAO,EACP,MAAM,EACN,QAAQ,GACX,GAAG,OAAO,CAAA;QAEX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAA2B;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAC,GAAG;QACZ,IAAI,CAAC,0BAA0B,EAAE,CAAA;QAEjC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAElC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC/B,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"NpmAutopackage.js","sourceRoot":"","sources":["../../src/modules/NpmAutopackage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { pathExists } from 'fs-extra';
|
|
2
|
+
import { Automodule, BaseAutomoduleOptions } from '../types';
|
|
3
|
+
import AbstractAutomodule from './AbstractAutomodule';
|
|
4
|
+
export default class UiAutomodule extends AbstractAutomodule implements Automodule {
|
|
5
|
+
static Class?: UiAutomoduleConstructor;
|
|
6
|
+
static pathExists: typeof pathExists;
|
|
7
|
+
protected componentName: string;
|
|
8
|
+
protected componentNameKebabCase: string;
|
|
9
|
+
protected constructor(options: UiAutomoduleOptions);
|
|
10
|
+
static Create(options: UiAutomoduleOptions): Automodule;
|
|
11
|
+
private toKebabCase;
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
private get testFileTemplate();
|
|
14
|
+
private get moduleFilePattern();
|
|
15
|
+
private get fakeFilePattern();
|
|
16
|
+
}
|
|
17
|
+
export type UiAutomoduleConstructor = new (options: UiAutomoduleOptions) => Automodule;
|
|
18
|
+
export interface UiAutomoduleOptions extends BaseAutomoduleOptions {
|
|
19
|
+
componentName: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_extra_1 = require("fs-extra");
|
|
7
|
+
const AbstractAutomodule_1 = __importDefault(require("./AbstractAutomodule"));
|
|
8
|
+
class UiAutomodule extends AbstractAutomodule_1.default {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
const { testSaveDir, moduleSaveDir, fakeSaveDir, componentName } = options;
|
|
11
|
+
super({
|
|
12
|
+
testSaveDir,
|
|
13
|
+
moduleSaveDir,
|
|
14
|
+
fakeSaveDir,
|
|
15
|
+
});
|
|
16
|
+
this.componentName = componentName;
|
|
17
|
+
this.componentNameKebabCase = this.toKebabCase(componentName);
|
|
18
|
+
}
|
|
19
|
+
static Create(options) {
|
|
20
|
+
return new (this.Class ?? this)(options);
|
|
21
|
+
}
|
|
22
|
+
toKebabCase(str) {
|
|
23
|
+
return str
|
|
24
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
25
|
+
.replace(/[\s_]+/g, '-')
|
|
26
|
+
.toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
async run() {
|
|
29
|
+
await this.runAbstract({
|
|
30
|
+
testFileName: `${this.componentName}.test.tsx`,
|
|
31
|
+
testFileContent: this.testFileTemplate,
|
|
32
|
+
moduleFileName: `${this.componentName}.tsx`,
|
|
33
|
+
moduleFileContent: this.moduleFilePattern,
|
|
34
|
+
fakeFileName: `Fake${this.componentName}.tsx`,
|
|
35
|
+
fakeFileContent: this.fakeFilePattern,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
get testFileTemplate() {
|
|
39
|
+
return `
|
|
40
|
+
import { test, assert } from '@sprucelabs/test-utils'
|
|
41
|
+
import { render, RenderResult } from '@testing-library/react'
|
|
42
|
+
import ${this.componentName} from '../../ui/${this.componentName}'
|
|
43
|
+
import AbstractPackageTest from '../AbstractPackageTest'
|
|
44
|
+
|
|
45
|
+
export default class ${this.componentName}Test extends AbstractPackageTest {
|
|
46
|
+
private static result: RenderResult
|
|
47
|
+
|
|
48
|
+
protected static async beforeEach() {
|
|
49
|
+
await super.beforeEach()
|
|
50
|
+
|
|
51
|
+
this.result = this.render()
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@test()
|
|
55
|
+
protected static async rendersComponent() {
|
|
56
|
+
assert.isTruthy(this.result, 'Failed to render component!')
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@test()
|
|
60
|
+
protected static async rendersTopLevelDivWithExpectedClass() {
|
|
61
|
+
assert.isEqual(
|
|
62
|
+
this.div.className,
|
|
63
|
+
this.className,
|
|
64
|
+
'Incorrect class for top-level div!'
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private static get div() {
|
|
69
|
+
return this.getByTestId(this.className)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
private static get getByTestId() {
|
|
73
|
+
return this.result.getByTestId
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
private static readonly className = '${this.toKebabCase(this.componentName)}'
|
|
77
|
+
|
|
78
|
+
protected static render() {
|
|
79
|
+
return render(<${this.componentName} />)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
}
|
|
84
|
+
get moduleFilePattern() {
|
|
85
|
+
return `
|
|
86
|
+
import React from 'react'
|
|
87
|
+
|
|
88
|
+
const ${this.componentName}: React.FC = () => {
|
|
89
|
+
return (
|
|
90
|
+
<div
|
|
91
|
+
className="${this.componentNameKebabCase}"
|
|
92
|
+
data-testid="${this.componentNameKebabCase}"
|
|
93
|
+
/>
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export default ${this.componentName}
|
|
98
|
+
`;
|
|
99
|
+
}
|
|
100
|
+
get fakeFilePattern() {
|
|
101
|
+
return `
|
|
102
|
+
import React from 'react'
|
|
103
|
+
import { ${this.componentName}Props } from '../ui/${this.componentName}'
|
|
104
|
+
|
|
105
|
+
export let last${this.componentName}Props: ${this.componentName}Props | undefined
|
|
106
|
+
|
|
107
|
+
const Fake${this.componentName}: React.FC<${this.componentName}Props> = (
|
|
108
|
+
props: ${this.componentName}Props
|
|
109
|
+
) => {
|
|
110
|
+
last${this.componentName}Props = props
|
|
111
|
+
|
|
112
|
+
return (
|
|
113
|
+
<div data-testid="${this.componentNameKebabCase}" />
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export default Fake${this.componentName}
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
UiAutomodule.pathExists = fs_extra_1.pathExists;
|
|
122
|
+
exports.default = UiAutomodule;
|
|
123
|
+
//# sourceMappingURL=UiAutomodule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UiAutomodule.js","sourceRoot":"","sources":["../../src/modules/UiAutomodule.ts"],"names":[],"mappings":";;;;;AAAA,uCAAqC;AAErC,8EAAqD;AAErD,MAAqB,YACjB,SAAQ,4BAAkB;IAS1B,YAAsB,OAA4B;QAC9C,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,GAC5D,OAAO,CAAA;QAEX,KAAK,CAAC;YACF,WAAW;YACX,aAAa;YACb,WAAW;SACd,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;IACjE,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAA4B;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAEO,WAAW,CAAC,GAAW;QAC3B,OAAO,GAAG;aACL,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,WAAW,EAAE,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,GAAG;QACZ,MAAM,IAAI,CAAC,WAAW,CAAC;YACnB,YAAY,EAAE,GAAG,IAAI,CAAC,aAAa,WAAW;YAC9C,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,cAAc,EAAE,GAAG,IAAI,CAAC,aAAa,MAAM;YAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,YAAY,EAAE,OAAO,IAAI,CAAC,aAAa,MAAM;YAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;SACxC,CAAC,CAAA;IACN,CAAC;IAED,IAAY,gBAAgB;QACxB,OAAO;;;qBAGM,IAAI,CAAC,aAAa,mBAAmB,IAAI,CAAC,aAAa;;;mCAGzC,IAAI,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDA+BE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;;;qCAGtD,IAAI,CAAC,aAAa;;;SAG9C,CAAA;IACL,CAAC;IAED,IAAY,iBAAiB;QACzB,OAAO;;;oBAGK,IAAI,CAAC,aAAa;;;qCAGD,IAAI,CAAC,sBAAsB;uCACzB,IAAI,CAAC,sBAAsB;;;;;6BAKrC,IAAI,CAAC,aAAa;SACtC,CAAA;IACL,CAAC;IAED,IAAY,eAAe;QACvB,OAAO;;uBAEQ,IAAI,CAAC,aAAa,uBAAuB,IAAI,CAAC,aAAa;;6BAErD,IAAI,CAAC,aAAa,UAAU,IAAI,CAAC,aAAa;;wBAEnD,IAAI,CAAC,aAAa,cAAc,IAAI,CAAC,aAAa;yBACjD,IAAI,CAAC,aAAa;;sBAErB,IAAI,CAAC,aAAa;;;wCAGA,IAAI,CAAC,sBAAsB;;;;iCAIlC,IAAI,CAAC,aAAa;SAC1C,CAAA;IACL,CAAC;;AA5Ha,uBAAU,GAAG,qBAAU,CAAA;kBALpB,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runImplAutomodule.js","sourceRoot":"","sources":["../../src/scripts/runImplAutomodule.ts"],"names":[],"mappings":";;;;;AAAA,+EAAsD;AAEtD,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IAEtC,MAAM,QAAQ,GAAG,wBAAc,CAAC,MAAM,CAAC;QACnC,WAAW,EACP,2DAA2D;QAC/D,aAAa,EAAE,iDAAiD;QAChE,WAAW,EACP,gEAAgE;QACpE,aAAa,EAAE,YAAY;QAC3B,QAAQ,EAAE,mBAAmB;KAChC,CAAC,CAAA;IAEF,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAA;IAEpB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;AACjD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const UiAutomodule_1 = __importDefault(require("../modules/UiAutomodule"));
|
|
7
|
+
async function main() {
|
|
8
|
+
console.log('\nRunning automodule...');
|
|
9
|
+
const instance = UiAutomodule_1.default.Create({
|
|
10
|
+
testSaveDir: '/Users/ericthecurious/dev/meta-node/src/__tests__/modules',
|
|
11
|
+
moduleSaveDir: '/Users/ericthecurious/dev/meta-node/src/modules',
|
|
12
|
+
fakeSaveDir: '/Users/ericthecurious/dev/meta-node/src/testDoubles/Autothingy',
|
|
13
|
+
componentName: 'Autothingy',
|
|
14
|
+
});
|
|
15
|
+
await instance.run();
|
|
16
|
+
console.log('Finished running automodule!\n');
|
|
17
|
+
}
|
|
18
|
+
main().catch((err) => {
|
|
19
|
+
console.error(err);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=runUiAutomodule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runUiAutomodule.js","sourceRoot":"","sources":["../../src/scripts/runUiAutomodule.ts"],"names":[],"mappings":";;;;;AAAA,2EAAkD;AAElD,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IAEtC,MAAM,QAAQ,GAAG,sBAAY,CAAC,MAAM,CAAC;QACjC,WAAW,EACP,2DAA2D;QAC/D,aAAa,EAAE,iDAAiD;QAChE,WAAW,EACP,gEAAgE;QACpE,aAAa,EAAE,YAAY;KAC9B,CAAC,CAAA;IAEF,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAA;IAEpB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;AACjD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { ImplAutomoduleOptions } from '../../modules/ImplAutomodule';
|
|
2
|
+
import { UiAutomoduleOptions } from '../../modules/UiAutomodule';
|
|
3
|
+
import { Automodule } from '../../types';
|
|
4
|
+
export default class FakeImplAutomodule implements Automodule {
|
|
5
|
+
static callsToConstructor: FakeAutomoduleOptions[];
|
|
4
6
|
static numCallsToRun: number;
|
|
5
|
-
constructor(options:
|
|
7
|
+
constructor(options: FakeAutomoduleOptions);
|
|
6
8
|
run(): Promise<void>;
|
|
7
9
|
static resetTestDouble(): void;
|
|
8
10
|
}
|
|
11
|
+
export type FakeAutomoduleOptions = ImplAutomoduleOptions | UiAutomoduleOptions;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class
|
|
3
|
+
class FakeImplAutomodule {
|
|
4
4
|
constructor(options) {
|
|
5
|
-
|
|
5
|
+
FakeImplAutomodule.callsToConstructor.push(options);
|
|
6
6
|
}
|
|
7
7
|
async run() {
|
|
8
|
-
|
|
8
|
+
FakeImplAutomodule.numCallsToRun++;
|
|
9
9
|
}
|
|
10
10
|
static resetTestDouble() {
|
|
11
11
|
this.callsToConstructor = [];
|
|
12
12
|
this.numCallsToRun = 0;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
exports.default =
|
|
15
|
+
FakeImplAutomodule.callsToConstructor = [];
|
|
16
|
+
FakeImplAutomodule.numCallsToRun = 0;
|
|
17
|
+
exports.default = FakeImplAutomodule;
|
|
18
18
|
//# sourceMappingURL=FakeAutomodule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeAutomodule.js","sourceRoot":"","sources":["../../../src/testDoubles/Automodule/FakeAutomodule.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"FakeAutomodule.js","sourceRoot":"","sources":["../../../src/testDoubles/Automodule/FakeAutomodule.ts"],"names":[],"mappings":";;AAIA,MAAqB,kBAAkB;IAInC,YAAmB,OAA8B;QAC7C,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IAEM,KAAK,CAAC,GAAG;QACZ,kBAAkB,CAAC,aAAa,EAAE,CAAA;IACtC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;IAC1B,CAAC;;AAda,qCAAkB,GAA4B,EAAE,CAAA;AAChD,gCAAa,GAAG,CAAC,CAAA;kBAFd,kBAAkB"}
|
package/build/types.d.ts
ADDED
package/build/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/meta-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Meta-layer utilities for maintaining Node.js package ecosystems.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nodejs",
|
|
@@ -48,8 +48,7 @@
|
|
|
48
48
|
"watch.tsc": "tsc -w"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"fs-extra": "^11.3.2"
|
|
52
|
-
"node-fetch": "^3.3.2"
|
|
51
|
+
"fs-extra": "^11.3.2"
|
|
53
52
|
},
|
|
54
53
|
"devDependencies": {
|
|
55
54
|
"@neurodevs/fake-node-core": "^0.1.1",
|