@powerhousedao/codegen 6.0.0-dev.33 → 6.0.0-dev.35
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/dist/src/codegen/__tests__/fixtures/typecheck.js +1 -1
- package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-doc-model.test.js +14 -69
- package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js +37 -36
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-editor.test.js +17 -17
- package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-manifest.test.js +17 -16
- package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-processor.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-processor.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-processor.test.js +63 -0
- package/dist/src/codegen/__tests__/generate-processor.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +23 -23
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +1 -1
- package/dist/src/codegen/__tests__/ts-morph-generator.test.js +4 -4
- package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +1 -1
- package/dist/src/codegen/__tests__/utils.d.ts +2 -2
- package/dist/src/codegen/__tests__/utils.d.ts.map +1 -1
- package/dist/src/codegen/__tests__/utils.js +9 -10
- package/dist/src/codegen/__tests__/utils.js.map +1 -1
- package/dist/src/codegen/generate.d.ts +1 -1
- package/dist/src/codegen/generate.d.ts.map +1 -1
- package/dist/src/codegen/generate.js +25 -9
- package/dist/src/codegen/generate.js.map +1 -1
- package/dist/src/codegen/graphql.d.ts.map +1 -1
- package/dist/src/codegen/graphql.js +10 -9
- package/dist/src/codegen/graphql.js.map +1 -1
- package/dist/src/codegen/hygen.js +4 -4
- package/dist/src/codegen/hygen.js.map +1 -1
- package/dist/src/codegen/utils.d.ts +1 -1
- package/dist/src/codegen/utils.d.ts.map +1 -1
- package/dist/src/codegen/utils.js +2 -1
- package/dist/src/codegen/utils.js.map +1 -1
- package/dist/src/create-lib/create-project.js +2 -2
- package/dist/src/create-lib/create-project.js.map +1 -1
- package/dist/src/file-builders/document-editor.d.ts +1 -1
- package/dist/src/file-builders/document-editor.d.ts.map +1 -1
- package/dist/src/file-builders/document-editor.js +9 -7
- package/dist/src/file-builders/document-editor.js.map +1 -1
- package/dist/src/file-builders/document-model/document-model.d.ts.map +1 -1
- package/dist/src/file-builders/document-model/document-model.js +59 -62
- package/dist/src/file-builders/document-model/document-model.js.map +1 -1
- package/dist/src/file-builders/document-model/gen-dir.d.ts +1 -1
- package/dist/src/file-builders/document-model/gen-dir.d.ts.map +1 -1
- package/dist/src/file-builders/document-model/gen-dir.js +48 -48
- package/dist/src/file-builders/document-model/gen-dir.js.map +1 -1
- package/dist/src/file-builders/document-model/root-dir.d.ts +1 -1
- package/dist/src/file-builders/document-model/root-dir.d.ts.map +1 -1
- package/dist/src/file-builders/document-model/root-dir.js +17 -17
- package/dist/src/file-builders/document-model/root-dir.js.map +1 -1
- package/dist/src/file-builders/document-model/src-dir.d.ts +1 -1
- package/dist/src/file-builders/document-model/src-dir.d.ts.map +1 -1
- package/dist/src/file-builders/document-model/src-dir.js +12 -12
- package/dist/src/file-builders/document-model/src-dir.js.map +1 -1
- package/dist/src/file-builders/document-model/tests-dir.d.ts +1 -1
- package/dist/src/file-builders/document-model/tests-dir.d.ts.map +1 -1
- package/dist/src/file-builders/document-model/tests-dir.js +8 -8
- package/dist/src/file-builders/document-model/tests-dir.js.map +1 -1
- package/dist/src/file-builders/document-model/upgrades-dir.d.ts +6 -4
- package/dist/src/file-builders/document-model/upgrades-dir.d.ts.map +1 -1
- package/dist/src/file-builders/document-model/upgrades-dir.js +17 -25
- package/dist/src/file-builders/document-model/upgrades-dir.js.map +1 -1
- package/dist/src/file-builders/drive-editor.d.ts +1 -1
- package/dist/src/file-builders/drive-editor.d.ts.map +1 -1
- package/dist/src/file-builders/drive-editor.js +37 -35
- package/dist/src/file-builders/drive-editor.js.map +1 -1
- package/dist/src/file-builders/editor-common.d.ts.map +1 -1
- package/dist/src/file-builders/editor-common.js +0 -1
- package/dist/src/file-builders/editor-common.js.map +1 -1
- package/dist/src/file-builders/module-files.d.ts +11 -5
- package/dist/src/file-builders/module-files.d.ts.map +1 -1
- package/dist/src/file-builders/module-files.js +36 -28
- package/dist/src/file-builders/module-files.js.map +1 -1
- package/dist/src/file-builders/processors/analytics.d.ts +3 -0
- package/dist/src/file-builders/processors/analytics.d.ts.map +1 -0
- package/dist/src/file-builders/processors/analytics.js +34 -0
- package/dist/src/file-builders/processors/analytics.js.map +1 -0
- package/dist/src/file-builders/processors/processor.d.ts +7 -0
- package/dist/src/file-builders/processors/processor.d.ts.map +1 -0
- package/dist/src/file-builders/processors/processor.js +165 -0
- package/dist/src/file-builders/processors/processor.js.map +1 -0
- package/dist/src/file-builders/processors/relational-db.d.ts +3 -0
- package/dist/src/file-builders/processors/relational-db.d.ts.map +1 -0
- package/dist/src/file-builders/processors/relational-db.js +53 -0
- package/dist/src/file-builders/processors/relational-db.js.map +1 -0
- package/dist/src/file-builders/processors/types.d.ts +13 -0
- package/dist/src/file-builders/processors/types.d.ts.map +1 -0
- package/dist/src/file-builders/processors/types.js +2 -0
- package/dist/src/file-builders/processors/types.js.map +1 -0
- package/dist/src/file-builders/subgraphs.d.ts +1 -1
- package/dist/src/file-builders/subgraphs.d.ts.map +1 -1
- package/dist/src/file-builders/subgraphs.js +2 -2
- package/dist/src/file-builders/subgraphs.js.map +1 -1
- package/dist/src/name-builders/get-variable-names.d.ts +1 -0
- package/dist/src/name-builders/get-variable-names.d.ts.map +1 -1
- package/dist/src/name-builders/get-variable-names.js +2 -0
- package/dist/src/name-builders/get-variable-names.js.map +1 -1
- package/dist/src/templates/boilerplate/document-models/upgrade-manifests.d.ts +2 -0
- package/dist/src/templates/boilerplate/document-models/upgrade-manifests.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/document-models/upgrade-manifests.js +7 -0
- package/dist/src/templates/boilerplate/document-models/upgrade-manifests.js.map +1 -0
- package/dist/src/templates/boilerplate/index.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/index.js +1 -0
- package/dist/src/templates/boilerplate/index.js.map +1 -1
- package/dist/src/templates/boilerplate/processors/index.d.ts +1 -1
- package/dist/src/templates/boilerplate/processors/index.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/processors/index.js +1 -1
- package/dist/src/templates/boilerplate/processors/index.js.map +1 -1
- package/dist/src/templates/document-model/tests/document-model.test.d.ts.map +1 -0
- package/dist/src/templates/document-model/tests/document-model.test.js.map +1 -0
- package/dist/src/templates/document-model/tests/module.test.d.ts.map +1 -0
- package/dist/src/templates/document-model/{src/tests → tests}/module.test.js +1 -1
- package/dist/src/templates/document-model/tests/module.test.js.map +1 -0
- package/dist/src/templates/document-model/upgrades/upgrade-manifest.d.ts +5 -0
- package/dist/src/templates/document-model/upgrades/upgrade-manifest.d.ts.map +1 -0
- package/dist/src/templates/document-model/upgrades/upgrade-manifest.js +13 -0
- package/dist/src/templates/document-model/upgrades/upgrade-manifest.js.map +1 -0
- package/dist/src/templates/index.d.ts +11 -2
- package/dist/src/templates/index.d.ts.map +1 -1
- package/dist/src/templates/index.js +11 -2
- package/dist/src/templates/index.js.map +1 -1
- package/dist/src/templates/processors/analytics/factory.d.ts +5 -0
- package/dist/src/templates/processors/analytics/factory.d.ts.map +1 -0
- package/dist/src/templates/processors/analytics/factory.js +26 -0
- package/dist/src/templates/processors/analytics/factory.js.map +1 -0
- package/dist/src/templates/processors/analytics/index.d.ts +4 -0
- package/dist/src/templates/processors/analytics/index.d.ts.map +1 -0
- package/dist/src/templates/processors/analytics/index.js +68 -0
- package/dist/src/templates/processors/analytics/index.js.map +1 -0
- package/dist/src/templates/processors/factory.d.ts +2 -0
- package/dist/src/templates/processors/factory.d.ts.map +1 -0
- package/dist/src/templates/processors/factory.js +34 -0
- package/dist/src/templates/processors/factory.js.map +1 -0
- package/dist/src/templates/processors/index.d.ts +2 -0
- package/dist/src/templates/processors/index.d.ts.map +1 -0
- package/dist/src/templates/processors/index.js +10 -0
- package/dist/src/templates/processors/index.js.map +1 -0
- package/dist/src/templates/processors/relational-db/factory.d.ts +6 -0
- package/dist/src/templates/processors/relational-db/factory.d.ts.map +1 -0
- package/dist/src/templates/processors/relational-db/factory.js +40 -0
- package/dist/src/templates/processors/relational-db/factory.js.map +1 -0
- package/dist/src/templates/processors/relational-db/index.d.ts +4 -0
- package/dist/src/templates/processors/relational-db/index.d.ts.map +1 -0
- package/dist/src/templates/processors/relational-db/index.js +55 -0
- package/dist/src/templates/processors/relational-db/index.js.map +1 -0
- package/dist/src/templates/processors/relational-db/migrations.d.ts +2 -0
- package/dist/src/templates/processors/relational-db/migrations.d.ts.map +1 -0
- package/dist/src/templates/processors/relational-db/migrations.js +23 -0
- package/dist/src/templates/processors/relational-db/migrations.js.map +1 -0
- package/dist/src/templates/processors/relational-db/schema.d.ts +2 -0
- package/dist/src/templates/processors/relational-db/schema.d.ts.map +1 -0
- package/dist/src/templates/processors/relational-db/schema.js +12 -0
- package/dist/src/templates/processors/relational-db/schema.js.map +1 -0
- package/dist/src/templates/processors/utils.d.ts +2 -0
- package/dist/src/templates/processors/utils.d.ts.map +1 -0
- package/dist/src/templates/processors/utils.js +6 -0
- package/dist/src/templates/processors/utils.js.map +1 -0
- package/dist/src/utils/format-with-prettier.d.ts +1 -1
- package/dist/src/utils/format-with-prettier.d.ts.map +1 -1
- package/dist/src/utils/format-with-prettier.js +3 -9
- package/dist/src/utils/format-with-prettier.js.map +1 -1
- package/dist/src/utils/index.d.ts +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +1 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/source-files.d.ts +8 -1
- package/dist/src/utils/source-files.d.ts.map +1 -1
- package/dist/src/utils/source-files.js +19 -2
- package/dist/src/utils/source-files.js.map +1 -1
- package/dist/src/utils/syntax-getters.d.ts +2 -1
- package/dist/src/utils/syntax-getters.d.ts.map +1 -1
- package/dist/src/utils/syntax-getters.js +4 -0
- package/dist/src/utils/syntax-getters.js.map +1 -1
- package/dist/src/utils/ts-morph-project.d.ts +14 -5
- package/dist/src/utils/ts-morph-project.d.ts.map +1 -1
- package/dist/src/utils/ts-morph-project.js +12 -12
- package/dist/src/utils/ts-morph-project.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -8
- package/dist/src/templates/document-model/src/tests/document-model.test.d.ts.map +0 -1
- package/dist/src/templates/document-model/src/tests/document-model.test.js.map +0 -1
- package/dist/src/templates/document-model/src/tests/module.test.d.ts.map +0 -1
- package/dist/src/templates/document-model/src/tests/module.test.js.map +0 -1
- /package/dist/src/templates/document-model/{src/tests → tests}/document-model.test.d.ts +0 -0
- /package/dist/src/templates/document-model/{src/tests → tests}/document-model.test.js +0 -0
- /package/dist/src/templates/document-model/{src/tests → tests}/module.test.d.ts +0 -0
|
@@ -4,7 +4,7 @@ export const compile = (testDir) => new Promise((resolve, reject) => {
|
|
|
4
4
|
stdout: [],
|
|
5
5
|
stderr: [],
|
|
6
6
|
};
|
|
7
|
-
const child = exec(`npm
|
|
7
|
+
const child = exec(`npm i && npx tsc`, { cwd: testDir });
|
|
8
8
|
child.stdout?.on("data", (data) => {
|
|
9
9
|
output.stdout.push(data);
|
|
10
10
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../../../../../src/codegen/__tests__/fixtures/typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CACzC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAA2C;QACrD,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;KACX,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../../../../../src/codegen/__tests__/fixtures/typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CACzC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAA2C;QACrD,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;KACX,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,CACJ,IAAI,KAAK,CACP,wBAAwB,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CACtF,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { readFileSync, rmSync } from "node:fs";
|
|
2
1
|
import path from "node:path";
|
|
3
2
|
import { afterAll, beforeAll, beforeEach, describe, expect, it, } from "vitest";
|
|
4
3
|
import { generateDocumentModel } from "../generate.js";
|
|
5
|
-
import { hygenGenerateProcessor } from "../hygen.js";
|
|
6
4
|
import { loadDocumentModel } from "../utils.js";
|
|
7
5
|
import { USE_TS_MORPH } from "./config.js";
|
|
8
6
|
import { DOCUMENT_MODELS_TEST_PROJECT, GENERATE_DOC_MODEL_TEST_OUTPUT_DIR, TEST_PACKAGE_NAME, } from "./constants.js";
|
|
9
7
|
import { runGeneratedTests } from "./fixtures/run-generated-tests.js";
|
|
10
|
-
import { compile } from "./fixtures/typecheck.js";
|
|
11
8
|
import { copyAllFiles, getTestDataDir, getTestOutDirPath, getTestOutputDir, purgeDirAfterTest, resetDirForTest, } from "./utils.js";
|
|
9
|
+
import { compile } from "./fixtures/typecheck.js";
|
|
10
|
+
import { readFile, rm } from "node:fs/promises";
|
|
12
11
|
describe("document model", () => {
|
|
13
12
|
const testDir = import.meta.dirname;
|
|
14
13
|
const outDirName = getTestOutputDir(testDir, GENERATE_DOC_MODEL_TEST_OUTPUT_DIR);
|
|
@@ -16,22 +15,20 @@ describe("document model", () => {
|
|
|
16
15
|
let testOutDirPath = getTestOutDirPath("initial", outDirName);
|
|
17
16
|
const documentModelsSrcPath = path.join(testDir, "data", "document-models");
|
|
18
17
|
let documentModelsDirName = path.join(testOutDirPath, "document-models");
|
|
19
|
-
let processorsDirName = path.join(testOutDirPath, "processors");
|
|
20
18
|
async function setupTest(context, dataDir = testDataDir) {
|
|
21
19
|
testOutDirPath = getTestOutDirPath(context.task.name, outDirName);
|
|
22
20
|
await copyAllFiles(dataDir, testOutDirPath);
|
|
23
21
|
documentModelsDirName = path.join(testOutDirPath, "document-models");
|
|
24
|
-
processorsDirName = path.join(testOutDirPath, "processors");
|
|
25
22
|
process.chdir(testOutDirPath);
|
|
26
23
|
}
|
|
27
24
|
beforeEach(async (context) => {
|
|
28
25
|
await setupTest(context);
|
|
29
26
|
});
|
|
30
|
-
beforeAll(() => {
|
|
31
|
-
resetDirForTest(outDirName);
|
|
27
|
+
beforeAll(async () => {
|
|
28
|
+
await resetDirForTest(outDirName);
|
|
32
29
|
});
|
|
33
|
-
afterAll(() => {
|
|
34
|
-
purgeDirAfterTest(outDirName);
|
|
30
|
+
afterAll(async () => {
|
|
31
|
+
await purgeDirAfterTest(outDirName);
|
|
35
32
|
});
|
|
36
33
|
const generate = async () => {
|
|
37
34
|
const billingStatementDocumentModel = await loadDocumentModel(path.join(documentModelsSrcPath, "billing-statement", "billing-statement.json"));
|
|
@@ -75,10 +72,10 @@ describe("document model", () => {
|
|
|
75
72
|
}, async (context) => {
|
|
76
73
|
await setupTest(context);
|
|
77
74
|
const documentModelsFilePath = path.join(documentModelsDirName, "document-models.ts");
|
|
78
|
-
|
|
75
|
+
await rm(documentModelsFilePath, { force: true });
|
|
79
76
|
await generate();
|
|
80
77
|
await compile(testOutDirPath);
|
|
81
|
-
const documentModelsContent =
|
|
78
|
+
const documentModelsContent = await readFile(documentModelsFilePath, "utf-8");
|
|
82
79
|
// Check that both models are exported
|
|
83
80
|
expect(documentModelsContent).toContain(`import { BillingStatement } from "./billing-statement/module.js";`);
|
|
84
81
|
expect(documentModelsContent).toContain(`import { TestDoc } from "./test-doc/module.js";`);
|
|
@@ -94,7 +91,7 @@ describe("document model", () => {
|
|
|
94
91
|
await generate();
|
|
95
92
|
await compile(testOutDirPath);
|
|
96
93
|
const documentModelsFilePath = path.join(documentModelsDirName, "document-models.ts");
|
|
97
|
-
const documentModelsContent =
|
|
94
|
+
const documentModelsContent = await readFile(documentModelsFilePath, "utf-8");
|
|
98
95
|
// Check that both models are exported
|
|
99
96
|
expect(documentModelsContent).toContain(`import { BillingStatement } from "./billing-statement/module.js";`);
|
|
100
97
|
expect(documentModelsContent).toContain(`import { TestDoc } from "./test-doc/module.js";`);
|
|
@@ -110,7 +107,7 @@ describe("document model", () => {
|
|
|
110
107
|
const testDocDocumentModelV2 = await loadDocumentModel(path.join(documentModelsSrcPath, "..", "test-doc-versions", "test-doc-v2", "test-doc.json"));
|
|
111
108
|
// TODO: this is a hack to get the test to pass, we should be able to update the reducer file once is generated
|
|
112
109
|
// remove .out/document-model/test-doc/src/reducers/base-operations.ts file
|
|
113
|
-
|
|
110
|
+
await rm(path.join(documentModelsDirName, "test-doc", "src", "reducers", "base-operations.ts"), { force: true });
|
|
114
111
|
await generateDocumentModel({
|
|
115
112
|
useTsMorph: USE_TS_MORPH,
|
|
116
113
|
useVersioning: false,
|
|
@@ -121,71 +118,19 @@ describe("document model", () => {
|
|
|
121
118
|
});
|
|
122
119
|
// expect .out/document-model/test-doc/src/reducers/base-operations.ts to contain setTestIdOperation, setTestNameOperation, setTestDescriptionOperation and setTestValueOperation
|
|
123
120
|
const baseOperationsPath = path.join(documentModelsDirName, "test-doc", "src", "reducers", "base-operations.ts");
|
|
124
|
-
const baseOperationsContent =
|
|
121
|
+
const baseOperationsContent = await readFile(baseOperationsPath, "utf-8");
|
|
125
122
|
expect(baseOperationsContent).toContain("setTestIdOperation");
|
|
126
123
|
expect(baseOperationsContent).toContain("setTestNameOperation");
|
|
127
124
|
expect(baseOperationsContent).toContain("setTestDescriptionOperation");
|
|
128
125
|
expect(baseOperationsContent).toContain("setTestValueOperation");
|
|
129
126
|
});
|
|
130
|
-
it("should generate an analytics processor and factory", {
|
|
131
|
-
timeout: 100000,
|
|
132
|
-
}, async (context) => {
|
|
133
|
-
await setupTest(context);
|
|
134
|
-
await generate();
|
|
135
|
-
await hygenGenerateProcessor("test-analytics-processor", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
136
|
-
skipFormat: true,
|
|
137
|
-
});
|
|
138
|
-
await compile(testOutDirPath);
|
|
139
|
-
});
|
|
140
|
-
it("should generate multiple analytics processors with composable factories", {
|
|
141
|
-
timeout: 100000,
|
|
142
|
-
}, async (context) => {
|
|
143
|
-
await setupTest(context);
|
|
144
|
-
await generate();
|
|
145
|
-
await hygenGenerateProcessor("test1", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
146
|
-
skipFormat: true,
|
|
147
|
-
});
|
|
148
|
-
await hygenGenerateProcessor("test2", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
149
|
-
skipFormat: true,
|
|
150
|
-
});
|
|
151
|
-
await hygenGenerateProcessor("test3", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
152
|
-
skipFormat: true,
|
|
153
|
-
});
|
|
154
|
-
await compile(testOutDirPath);
|
|
155
|
-
});
|
|
156
|
-
it("should generate a relational db processor and factory", {
|
|
157
|
-
timeout: 100000,
|
|
158
|
-
}, async (context) => {
|
|
159
|
-
await setupTest(context);
|
|
160
|
-
await generate();
|
|
161
|
-
await hygenGenerateProcessor("test-relational-processor", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
162
|
-
skipFormat: true,
|
|
163
|
-
});
|
|
164
|
-
await compile(testOutDirPath);
|
|
165
|
-
});
|
|
166
|
-
it("should generate multiple relational db processors with composable factories", {
|
|
167
|
-
timeout: 100000,
|
|
168
|
-
}, async (context) => {
|
|
169
|
-
await setupTest(context);
|
|
170
|
-
await generate();
|
|
171
|
-
await hygenGenerateProcessor("test1", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
172
|
-
skipFormat: true,
|
|
173
|
-
});
|
|
174
|
-
await hygenGenerateProcessor("test2", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
175
|
-
skipFormat: true,
|
|
176
|
-
});
|
|
177
|
-
await hygenGenerateProcessor("test3", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
178
|
-
skipFormat: true,
|
|
179
|
-
});
|
|
180
|
-
await compile(testOutDirPath);
|
|
181
|
-
});
|
|
182
127
|
it("should generate error classes and types from billing statement errors", { timeout: 100000 }, async (context) => {
|
|
183
128
|
await setupTest(context);
|
|
184
129
|
await generate();
|
|
185
130
|
await compile(testOutDirPath);
|
|
186
131
|
// Check general module errors
|
|
187
132
|
const generalErrorPath = path.join(documentModelsDirName, "billing-statement", "gen", "general", "error.ts");
|
|
188
|
-
const generalErrorContent =
|
|
133
|
+
const generalErrorContent = await readFile(generalErrorPath, "utf-8");
|
|
189
134
|
// Check that InvalidStatusTransition error is generated
|
|
190
135
|
expect(generalErrorContent).toContain("export type ErrorCode =");
|
|
191
136
|
expect(generalErrorContent).toContain(`"InvalidStatusTransition"`);
|
|
@@ -193,7 +138,7 @@ describe("document model", () => {
|
|
|
193
138
|
expect(generalErrorContent).toContain(`errorCode = "InvalidStatusTransition" as ErrorCode`);
|
|
194
139
|
// Check line_items module errors
|
|
195
140
|
const lineItemsErrorPath = path.join(documentModelsDirName, "billing-statement", "gen", "line-items", "error.ts");
|
|
196
|
-
const lineItemsErrorContent =
|
|
141
|
+
const lineItemsErrorContent = await readFile(lineItemsErrorPath, "utf-8");
|
|
197
142
|
// Check that both DuplicateLineItem and InvalidStatusTransition errors are generated (but deduplicated)
|
|
198
143
|
expect(lineItemsErrorContent).toContain("export type ErrorCode =");
|
|
199
144
|
expect(lineItemsErrorContent).toContain(`"DuplicateLineItem"`);
|
|
@@ -218,7 +163,7 @@ describe("document model", () => {
|
|
|
218
163
|
});
|
|
219
164
|
// Check that error codes are generated from error names
|
|
220
165
|
const testOperationsErrorPath = path.join(documentModelsDirName, "test-empty-codes", "gen", "test-operations", "error.ts");
|
|
221
|
-
const testOperationsErrorContent =
|
|
166
|
+
const testOperationsErrorContent = await readFile(testOperationsErrorPath, "utf-8");
|
|
222
167
|
// Check that error codes are generated from names in PascalCase when empty
|
|
223
168
|
expect(testOperationsErrorContent).toContain("export type ErrorCode =");
|
|
224
169
|
expect(testOperationsErrorContent).toContain(`"InvalidValue"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-doc-model.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-doc-model.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"generate-doc-model.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-doc-model.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,EAAE,GAEH,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEhD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IACpC,MAAM,UAAU,GAAG,gBAAgB,CACjC,OAAO,EACP,kCAAkC,CACnC,CAAC;IACF,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;IAE1E,IAAI,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC5E,IAAI,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACzE,KAAK,UAAU,SAAS,CAAC,OAAoB,EAAE,OAAO,GAAG,WAAW;QAClE,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAElE,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE5C,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAErE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3B,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,6BAA6B,GAAG,MAAM,iBAAiB,CAC3D,IAAI,CAAC,IAAI,CACP,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,CACzB,CACF,CAAC;QAEF,MAAM,qBAAqB,CAAC;YAC1B,GAAG,EAAE,qBAAqB;YAC1B,oBAAoB,EAAE,iBAAiB;YACvC,kBAAkB,EAAE,6BAA6B;YACjD,UAAU,EAAE,YAAY;YACxB,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAClD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,EAAE,eAAe,CAAC,CAC9D,CAAC;QAEF,MAAM,qBAAqB,CAAC;YAC1B,UAAU,EAAE,YAAY;YACxB,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,qBAAqB;YAC1B,oBAAoB,EAAE,iBAAiB;YACvC,kBAAkB,EAAE,oBAAoB;YACxC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,EAAE,CACA,kCAAkC,EAClC;QACE,OAAO,EAAE,MAAM;KAChB,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9B,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC,CACF,CAAC;IAEF,EAAE,CACA,sEAAsE,EACtE;QACE,OAAO,EAAE,MAAM;KAChB,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,eAAe,GAAG,cAAc,CACpC,OAAO,EACP,4DAA4D,CAC7D,CAAC;QACF,MAAM,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC1C,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9B,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC,CACF,CAAC;IAEF,EAAE,CACA,gEAAgE,EAChE;QACE,OAAO,EAAE,MAAM;KAChB,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACtC,qBAAqB,EACrB,oBAAoB,CACrB,CAAC;QAEF,MAAM,EAAE,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAElD,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;QAE9B,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAC1C,sBAAsB,EACtB,OAAO,CACR,CAAC;QAEF,sCAAsC;QACtC,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACrC,mEAAmE,CACpE,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACrC,iDAAiD,CAClD,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACrC,6DAA6D,CAC9D,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,CACF,CAAC;IAEF,EAAE,CACA,gFAAgF,EAChF;QACE,OAAO,EAAE,MAAM;KAChB,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;QAE9B,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACtC,qBAAqB,EACrB,oBAAoB,CACrB,CAAC;QACF,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAC1C,sBAAsB,EACtB,OAAO,CACR,CAAC;QAEF,sCAAsC;QACtC,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACrC,mEAAmE,CACpE,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACrC,iDAAiD,CAClD,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACrC,6DAA6D,CAC9D,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,CACF,CAAC;IAEF,EAAE,CACA,gDAAgD,EAChD,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;QAE9B,MAAM,sBAAsB,GAAG,MAAM,iBAAiB,CACpD,IAAI,CAAC,IAAI,CACP,qBAAqB,EACrB,IAAI,EACJ,mBAAmB,EACnB,aAAa,EACb,eAAe,CAChB,CACF,CAAC;QAEF,+GAA+G;QAC/G,2EAA2E;QAC3E,MAAM,EAAE,CACN,IAAI,CAAC,IAAI,CACP,qBAAqB,EACrB,UAAU,EACV,KAAK,EACL,UAAU,EACV,oBAAoB,CACrB,EACD,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAC;QAEF,MAAM,qBAAqB,CAAC;YAC1B,UAAU,EAAE,YAAY;YACxB,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,qBAAqB;YAC1B,oBAAoB,EAAE,iBAAiB;YACvC,kBAAkB,EAAE,sBAAsB;YAC1C,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,iLAAiL;QACjL,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,qBAAqB,EACrB,UAAU,EACV,KAAK,EACL,UAAU,EACV,oBAAoB,CACrB,CAAC;QACF,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC9D,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAChE,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACvE,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACnE,CAAC,CACF,CAAC;IAEF,EAAE,CACA,uEAAuE,EACvE,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;QAE9B,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,UAAU,CACX,CAAC;QACF,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAEtE,wDAAwD;QACxD,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACjE,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACnE,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,CACnC,4EAA4E,CAC7E,CAAC;QACF,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,CACnC,oDAAoD,CACrD,CAAC;QAEF,iCAAiC;QACjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,EACL,YAAY,EACZ,UAAU,CACX,CAAC;QACF,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAE1E,wGAAwG;QACxG,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACnE,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/D,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACrC,sEAAsE,CACvE,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACrC,4EAA4E,CAC7E,CAAC;QAEF,mGAAmG;QACnG,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAClD,4BAA4B,CAC7B,CAAC;QACF,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C;IAC1F,CAAC,CACF,CAAC;IAEF,EAAE,CACA,yEAAyE,EACzE,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,QAAQ,EAAE,CAAC;QAEjB,MAAM,2BAA2B,GAAG,MAAM,iBAAiB,CACzD,IAAI,CAAC,IAAI,CACP,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,CAC9B,CACF,CAAC;QAEF,MAAM,qBAAqB,CAAC;YAC1B,UAAU,EAAE,YAAY;YACxB,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,qBAAqB;YAC1B,oBAAoB,EAAE,iBAAiB;YACvC,kBAAkB,EAAE,2BAA2B;YAC/C,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CACvC,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,EACL,iBAAiB,EACjB,UAAU,CACX,CAAC;QACF,MAAM,0BAA0B,GAAG,MAAM,QAAQ,CAC/C,uBAAuB,EACvB,OAAO,CACR,CAAC;QAEF,2EAA2E;QAC3E,MAAM,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACxE,MAAM,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE7D,yCAAyC;QACzC,MAAM,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAC1C,iEAAiE,CAClE,CAAC;QACF,MAAM,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAC1C,+DAA+D,CAChE,CAAC;QAEF,6DAA6D;QAC7D,MAAM,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAC1C,yCAAyC,CAC1C,CAAC;QACF,MAAM,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAC1C,uCAAuC,CACxC,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { generateDriveEditor } from "@powerhousedao/codegen";
|
|
2
|
-
import
|
|
2
|
+
import { directoryExists, fileExists } from "@powerhousedao/common/clis";
|
|
3
|
+
import { readFile, rm } from "node:fs/promises";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import { afterAll, beforeAll, describe, expect, it, } from "vitest";
|
|
5
6
|
import { USE_TS_MORPH } from "./config.js";
|
|
@@ -27,11 +28,11 @@ describe("generateDriveEditor", () => {
|
|
|
27
28
|
config.documentModelsDir = path.join(testOutDirPath, "document-models");
|
|
28
29
|
process.chdir(testOutDirPath);
|
|
29
30
|
}
|
|
30
|
-
beforeAll(() => {
|
|
31
|
-
resetDirForTest(outDirName);
|
|
31
|
+
beforeAll(async () => {
|
|
32
|
+
await resetDirForTest(outDirName);
|
|
32
33
|
});
|
|
33
|
-
afterAll(() => {
|
|
34
|
-
purgeDirAfterTest(outDirName);
|
|
34
|
+
afterAll(async () => {
|
|
35
|
+
await purgeDirAfterTest(outDirName);
|
|
35
36
|
});
|
|
36
37
|
it("should generate a drive editor with the correct files and content", {
|
|
37
38
|
timeout: 100000,
|
|
@@ -49,65 +50,65 @@ describe("generateDriveEditor", () => {
|
|
|
49
50
|
isDragAndDropEnabled: true,
|
|
50
51
|
});
|
|
51
52
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
52
|
-
expect(
|
|
53
|
+
expect(await directoryExists(editorsDir)).toBe(true);
|
|
53
54
|
const editorsFilePath = path.join(editorsDir, "editors.ts");
|
|
54
|
-
expect(
|
|
55
|
-
const editorsContent =
|
|
55
|
+
expect(await fileExists(editorsFilePath)).toBe(true);
|
|
56
|
+
const editorsContent = await readFile(editorsFilePath, "utf-8");
|
|
56
57
|
expect(editorsContent).toContain(`export const editors: EditorModule[]`);
|
|
57
58
|
expect(editorsContent).toContain(`AtlasDriveExplorer`);
|
|
58
59
|
const editorDir = path.join(editorsDir, "atlas-drive-explorer");
|
|
59
|
-
expect(
|
|
60
|
+
expect(await directoryExists(editorDir)).toBe(true);
|
|
60
61
|
const moduleFilePath = path.join(editorDir, "module.ts");
|
|
61
|
-
expect(
|
|
62
|
-
const moduleContent =
|
|
62
|
+
expect(await fileExists(moduleFilePath)).toBe(true);
|
|
63
|
+
const moduleContent = await readFile(moduleFilePath, "utf-8");
|
|
63
64
|
expect(moduleContent).toContain(`export const AtlasDriveExplorer: EditorModule`);
|
|
64
65
|
expect(moduleContent).toContain(`documentTypes: ["powerhouse/document-drive"]`);
|
|
65
66
|
expect(moduleContent).toContain(`id: "AtlasDriveExplorer"`);
|
|
66
67
|
expect(moduleContent).toContain(`name: "Atlas Drive Explorer"`);
|
|
67
68
|
const configFilePath = path.join(editorDir, "config.ts");
|
|
68
|
-
expect(
|
|
69
|
-
const configContent =
|
|
69
|
+
expect(await fileExists(configFilePath)).toBe(true);
|
|
70
|
+
const configContent = await readFile(configFilePath, "utf-8");
|
|
70
71
|
expect(configContent).toContain(`export const editorConfig: PHDriveEditorConfig`);
|
|
71
72
|
expect(configContent).toContain(`allowedDocumentTypes: ["powerhouse/test-doc"]`);
|
|
72
73
|
const editorFilePath = path.join(editorDir, "editor.tsx");
|
|
73
|
-
expect(
|
|
74
|
-
const editorContent =
|
|
74
|
+
expect(await fileExists(editorFilePath)).toBe(true);
|
|
75
|
+
const editorContent = await readFile(editorFilePath, "utf-8");
|
|
75
76
|
expect(editorContent).toContain(`export default function Editor(props: EditorProps)`);
|
|
76
77
|
expect(editorContent).toContain(`<DriveExplorer {...props}`);
|
|
77
78
|
expect(editorContent).toContain(`useSetPHDriveEditorConfig(editorConfig)`);
|
|
78
79
|
const componentsDir = path.join(editorDir, "components");
|
|
79
|
-
expect(
|
|
80
|
+
expect(await directoryExists(componentsDir)).toBe(true);
|
|
80
81
|
const driveExplorerPath = path.join(componentsDir, "DriveExplorer.tsx");
|
|
81
|
-
expect(
|
|
82
|
-
const driveExplorerContent =
|
|
82
|
+
expect(await fileExists(driveExplorerPath)).toBe(true);
|
|
83
|
+
const driveExplorerContent = await readFile(driveExplorerPath, "utf-8");
|
|
83
84
|
expect(driveExplorerContent).toContain(`export function DriveExplorer({ children }: EditorProps)`);
|
|
84
85
|
const createDocumentPath = path.join(componentsDir, "CreateDocument.tsx");
|
|
85
|
-
expect(
|
|
86
|
-
const createDocumentContent =
|
|
86
|
+
expect(await fileExists(createDocumentPath)).toBe(true);
|
|
87
|
+
const createDocumentContent = await readFile(createDocumentPath, "utf-8");
|
|
87
88
|
expect(createDocumentContent).toContain(`export function CreateDocument()`);
|
|
88
89
|
const folderTreePath = path.join(componentsDir, "FolderTree.tsx");
|
|
89
|
-
expect(
|
|
90
|
-
const folderTreeContent =
|
|
90
|
+
expect(await fileExists(folderTreePath)).toBe(true);
|
|
91
|
+
const folderTreeContent = await readFile(folderTreePath, "utf-8");
|
|
91
92
|
expect(folderTreeContent).toContain(`export function FolderTree()`);
|
|
92
93
|
const driveContentsPath = path.join(componentsDir, "DriveContents.tsx");
|
|
93
|
-
expect(
|
|
94
|
-
const driveContentsContent =
|
|
94
|
+
expect(await fileExists(driveContentsPath)).toBe(true);
|
|
95
|
+
const driveContentsContent = await readFile(driveContentsPath, "utf-8");
|
|
95
96
|
expect(driveContentsContent).toContain(`export function DriveContents()`);
|
|
96
97
|
const filesPath = path.join(componentsDir, "Files.tsx");
|
|
97
|
-
expect(
|
|
98
|
-
const filesContent =
|
|
98
|
+
expect(await fileExists(filesPath)).toBe(true);
|
|
99
|
+
const filesContent = await readFile(filesPath, "utf-8");
|
|
99
100
|
expect(filesContent).toContain(`export function Files()`);
|
|
100
101
|
const foldersPath = path.join(componentsDir, "Folders.tsx");
|
|
101
|
-
expect(
|
|
102
|
-
const foldersContent =
|
|
102
|
+
expect(await fileExists(foldersPath)).toBe(true);
|
|
103
|
+
const foldersContent = await readFile(foldersPath, "utf-8");
|
|
103
104
|
expect(foldersContent).toContain(`export function Folders()`);
|
|
104
105
|
const emptyStatePath = path.join(componentsDir, "EmptyState.tsx");
|
|
105
|
-
expect(
|
|
106
|
-
const emptyStateContent =
|
|
106
|
+
expect(await fileExists(emptyStatePath)).toBe(true);
|
|
107
|
+
const emptyStateContent = await readFile(emptyStatePath, "utf-8");
|
|
107
108
|
expect(emptyStateContent).toContain(`export function EmptyState()`);
|
|
108
109
|
const navigationBreadcrumbsPath = path.join(componentsDir, "NavigationBreadcrumbs.tsx");
|
|
109
|
-
expect(
|
|
110
|
-
const navigationBreadcrumbsContent =
|
|
110
|
+
expect(await fileExists(navigationBreadcrumbsPath)).toBe(true);
|
|
111
|
+
const navigationBreadcrumbsContent = await readFile(navigationBreadcrumbsPath, "utf-8");
|
|
111
112
|
expect(navigationBreadcrumbsContent).toContain(`export function NavigationBreadcrumbs()`);
|
|
112
113
|
});
|
|
113
114
|
it("should generate a drive editor with default id when no appId is provided", {
|
|
@@ -128,7 +129,7 @@ describe("generateDriveEditor", () => {
|
|
|
128
129
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
129
130
|
const editorDir = path.join(editorsDir, "test-app");
|
|
130
131
|
const moduleFilePath = path.join(editorDir, "module.ts");
|
|
131
|
-
const moduleContent =
|
|
132
|
+
const moduleContent = await readFile(moduleFilePath, "utf-8");
|
|
132
133
|
expect(moduleContent).toContain(`id: "test-app"`);
|
|
133
134
|
await compile(testOutDirPath);
|
|
134
135
|
});
|
|
@@ -149,7 +150,7 @@ describe("generateDriveEditor", () => {
|
|
|
149
150
|
});
|
|
150
151
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
151
152
|
const editorsFilePath = path.join(editorsDir, "editors.ts");
|
|
152
|
-
const editorsContent =
|
|
153
|
+
const editorsContent = await readFile(editorsFilePath, "utf-8");
|
|
153
154
|
expect(editorsContent).toContain(`export const editors: EditorModule[]`);
|
|
154
155
|
expect(editorsContent).toContain(`AtlasDriveExplorer`);
|
|
155
156
|
expect(editorsContent).toContain(`TestDocEditor`);
|
|
@@ -161,7 +162,7 @@ describe("generateDriveEditor", () => {
|
|
|
161
162
|
const name = "Atlas Drive Explorer";
|
|
162
163
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
163
164
|
const editorsFilePath = path.join(editorsDir, "editors.ts");
|
|
164
|
-
|
|
165
|
+
await rm(editorsFilePath, { force: true });
|
|
165
166
|
await generateDriveEditor({
|
|
166
167
|
...config,
|
|
167
168
|
driveEditorName: name,
|
|
@@ -173,7 +174,7 @@ describe("generateDriveEditor", () => {
|
|
|
173
174
|
isDragAndDropEnabled: true,
|
|
174
175
|
});
|
|
175
176
|
await compile(testOutDirPath);
|
|
176
|
-
const editorsContent =
|
|
177
|
+
const editorsContent = await readFile(editorsFilePath, "utf-8");
|
|
177
178
|
expect(editorsContent).toContain(`export const editors: EditorModule[]`);
|
|
178
179
|
expect(editorsContent).toContain(`AtlasDriveExplorer`);
|
|
179
180
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-drive-editor.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-drive-editor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-drive-editor.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-drive-editor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { directoryExists, fileExists } from "@powerhousedao/common/clis";
|
|
1
2
|
import {} from "@powerhousedao/config";
|
|
2
|
-
import
|
|
3
|
+
import { readFile, rm } from "node:fs/promises";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import { afterAll, beforeAll, describe, expect, it, } from "vitest";
|
|
5
6
|
import { generateEditor } from "../index.js";
|
|
@@ -28,11 +29,11 @@ describe("generateEditor", () => {
|
|
|
28
29
|
config.documentModelsDir = path.join(testOutDirPath, "document-models");
|
|
29
30
|
process.chdir(testOutDirPath);
|
|
30
31
|
}
|
|
31
|
-
beforeAll(() => {
|
|
32
|
-
resetDirForTest(outDirName);
|
|
32
|
+
beforeAll(async () => {
|
|
33
|
+
await resetDirForTest(outDirName);
|
|
33
34
|
});
|
|
34
|
-
afterAll(() => {
|
|
35
|
-
purgeDirAfterTest(outDirName);
|
|
35
|
+
afterAll(async () => {
|
|
36
|
+
await purgeDirAfterTest(outDirName);
|
|
36
37
|
});
|
|
37
38
|
it("should generate a Document Model editor", {
|
|
38
39
|
timeout: 100000,
|
|
@@ -50,24 +51,23 @@ describe("generateEditor", () => {
|
|
|
50
51
|
});
|
|
51
52
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
52
53
|
const editorsFilePath = path.join(editorsDir, "editors.ts");
|
|
53
|
-
expect(
|
|
54
|
-
const editorsContent =
|
|
54
|
+
expect(await fileExists(editorsFilePath)).toBe(true);
|
|
55
|
+
const editorsContent = await readFile(editorsFilePath, "utf-8");
|
|
55
56
|
expect(editorsContent).toContain(`import { TestDocEditor } from "./test-doc-editor/module.js";`);
|
|
56
57
|
expect(editorsContent).toContain(`export const editors: EditorModule[]`);
|
|
57
58
|
expect(editorsContent).toContain(`TestDocEditor`);
|
|
58
59
|
const editorDir = path.join(editorsDir, "test-doc-editor");
|
|
59
|
-
expect(
|
|
60
|
+
expect(await directoryExists(editorDir)).toBe(true);
|
|
60
61
|
const editorPath = path.join(editorDir, "editor.tsx");
|
|
61
|
-
expect(
|
|
62
|
-
const editorContent =
|
|
63
|
-
expect(editorContent).toContain(`
|
|
64
|
-
expect(editorContent).toContain(`import { useSelectedTestDocDocument, actions }`);
|
|
62
|
+
expect(await fileExists(editorPath)).toBe(true);
|
|
63
|
+
const editorContent = await readFile(editorPath, "utf-8");
|
|
64
|
+
expect(editorContent).toContain(`DocumentStateViewer`);
|
|
65
65
|
expect(editorContent).toContain(`export default function Editor()`);
|
|
66
66
|
expect(editorContent).toContain(`<DocumentToolbar />`);
|
|
67
67
|
expect(editorContent).toContain(`dispatch(actions.setName(name));`);
|
|
68
68
|
const modulePath = path.join(editorDir, "module.ts");
|
|
69
|
-
expect(
|
|
70
|
-
const moduleContent =
|
|
69
|
+
expect(await fileExists(modulePath)).toBe(true);
|
|
70
|
+
const moduleContent = await readFile(modulePath, "utf-8");
|
|
71
71
|
expect(moduleContent).toContain(`export const TestDocEditor: EditorModule`);
|
|
72
72
|
expect(moduleContent).toContain(`documentTypes: ["powerhouse/test-doc`);
|
|
73
73
|
expect(moduleContent).toContain(`id: "test-document-model-editor"`);
|
|
@@ -90,7 +90,7 @@ describe("generateEditor", () => {
|
|
|
90
90
|
});
|
|
91
91
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
92
92
|
const editorsFilePath = path.join(editorsDir, "editors.ts");
|
|
93
|
-
const editorsContent =
|
|
93
|
+
const editorsContent = await readFile(editorsFilePath, "utf-8");
|
|
94
94
|
expect(editorsContent).toContain(`export const editors: EditorModule[]`);
|
|
95
95
|
expect(editorsContent).toContain(`TestDocEditorTwo`);
|
|
96
96
|
expect(editorsContent).toContain(`TestDocEditor`);
|
|
@@ -100,7 +100,7 @@ describe("generateEditor", () => {
|
|
|
100
100
|
}, async (context) => {
|
|
101
101
|
await setupTest(context, getTestDataDir(testDir, EDITORS_TEST_PROJECT_WITH_EXISTING_EDITOR));
|
|
102
102
|
const editorsFilePath = path.join(testOutDirPath, "editors", "editors.ts");
|
|
103
|
-
|
|
103
|
+
await rm(editorsFilePath, { force: true });
|
|
104
104
|
await generateEditor({
|
|
105
105
|
...config,
|
|
106
106
|
editorName: "TestDocEditor2",
|
|
@@ -111,7 +111,7 @@ describe("generateEditor", () => {
|
|
|
111
111
|
editorDirName: undefined,
|
|
112
112
|
});
|
|
113
113
|
await compile(testOutDirPath);
|
|
114
|
-
const editorsContent =
|
|
114
|
+
const editorsContent = await readFile(editorsFilePath, "utf-8");
|
|
115
115
|
expect(editorsContent).toContain(`export const editors: EditorModule[]`);
|
|
116
116
|
expect(editorsContent).toContain(`TestDocEditor`);
|
|
117
117
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-editor.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-editor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-editor.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-editor.test.ts"],"names":[],"mappings":"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"}
|