@powerhousedao/vetra 5.1.0-dev.17 → 5.1.0-dev.18

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.
@@ -1,6 +1,32 @@
1
+ import path from "path";
1
2
  import { beforeEach, describe, expect, it, vi } from "vitest";
2
- import { LEGACY } from "../document-handlers/generators/constants.js";
3
+ import { LEGACY, USE_VERSIONING, } from "../document-handlers/generators/constants.js";
3
4
  import { CodegenProcessor } from "../index.js";
5
+ const defaultManifest = {
6
+ name: "",
7
+ description: "",
8
+ category: "",
9
+ publisher: {
10
+ name: "",
11
+ url: "",
12
+ },
13
+ documentModels: [],
14
+ editors: [],
15
+ apps: [],
16
+ subgraphs: [],
17
+ importScripts: [],
18
+ };
19
+ function mockGetPHConfig() {
20
+ return {
21
+ logLevel: "verbose",
22
+ skipFormat: true,
23
+ documentModelsDir: path.join(process.cwd(), "document-models"),
24
+ editorsDir: path.join(process.cwd(), "editors"),
25
+ processorsDir: path.join(process.cwd(), "processors"),
26
+ subgraphsDir: path.join(process.cwd(), "subgraphs"),
27
+ importScriptsDir: path.join(process.cwd(), "import-scripts"),
28
+ };
29
+ }
4
30
  // Mock ONLY the external codegen library boundary
5
31
  vi.mock("@powerhousedao/codegen", () => ({
6
32
  generateEditor: vi.fn(),
@@ -14,7 +40,7 @@ vi.mock("@powerhousedao/codegen", () => ({
14
40
  }));
15
41
  // Mock config functions
16
42
  vi.mock("@powerhousedao/config/node", () => ({
17
- getConfig: vi.fn(() => "/test/config/path"),
43
+ getConfig: vi.fn(mockGetPHConfig),
18
44
  }));
19
45
  // Mock kebabCase
20
46
  vi.mock("change-case", () => ({
@@ -37,7 +63,7 @@ describe("CodegenProcessor E2E Tests", () => {
37
63
  // Use fake timers to control setTimeout
38
64
  vi.useFakeTimers();
39
65
  mockConfig = {
40
- PH_CONFIG: "/test/config/path",
66
+ PH_CONFIG: mockGetPHConfig(),
41
67
  // Use the actual working directory for consistency
42
68
  CURRENT_WORKING_DIR: process.cwd(),
43
69
  };
@@ -45,15 +71,16 @@ describe("CodegenProcessor E2E Tests", () => {
45
71
  processor = new CodegenProcessor();
46
72
  // Reset all codegen function mocks to resolve successfully
47
73
  const codegen = await import("@powerhousedao/codegen");
48
- vi.mocked(codegen.generateEditor).mockResolvedValue(undefined);
49
- vi.mocked(codegen.generateFromDocument).mockResolvedValue(undefined);
50
- vi.mocked(codegen.generateSubgraphFromDocumentModel).mockResolvedValue(undefined);
51
- vi.mocked(codegen.generateManifest).mockResolvedValue(undefined);
52
- vi.mocked(codegen.generateDriveEditor).mockResolvedValue(undefined);
53
- vi.mocked(codegen.generateSubgraph).mockResolvedValue(undefined);
54
- vi.mocked(codegen.generateProcessor).mockResolvedValue(undefined);
74
+ vi.mocked(codegen.generateEditor).mockResolvedValue();
75
+ vi.mocked(codegen.generateFromDocument).mockResolvedValue();
76
+ vi.mocked(codegen.generateSubgraphFromDocumentModel).mockResolvedValue();
77
+ vi.mocked(codegen.generateManifest).mockResolvedValue(JSON.stringify(defaultManifest));
78
+ vi.mocked(codegen.generateDriveEditor).mockResolvedValue();
79
+ vi.mocked(codegen.generateSubgraph).mockResolvedValue();
80
+ vi.mocked(codegen.generateProcessor).mockResolvedValue();
55
81
  vi.mocked(codegen.validateDocumentModelState).mockReturnValue({
56
82
  isValid: true,
83
+ errors: [],
57
84
  });
58
85
  });
59
86
  afterEach(() => {
@@ -172,7 +199,13 @@ describe("CodegenProcessor E2E Tests", () => {
172
199
  };
173
200
  await processor.onStrands([strand]);
174
201
  await vi.runAllTimersAsync();
175
- expect(generateFromDocument).toHaveBeenCalledWith(validState, mockConfig.PH_CONFIG, LEGACY, { verbose: false });
202
+ const generateFromDocumentArgs = {
203
+ legacy: LEGACY,
204
+ useVersioning: USE_VERSIONING,
205
+ documentModelState: validState,
206
+ config: mockConfig.PH_CONFIG,
207
+ };
208
+ expect(generateFromDocument).toHaveBeenCalledWith(generateFromDocumentArgs);
176
209
  expect(generateSubgraphFromDocumentModel).toHaveBeenCalledWith("Test Model", validState, mockConfig.PH_CONFIG, { verbose: false });
177
210
  expect(generateManifest).toHaveBeenCalledWith({
178
211
  documentModels: [
@@ -209,6 +242,13 @@ describe("CodegenProcessor E2E Tests", () => {
209
242
  const validState = {
210
243
  id: "test-model-id",
211
244
  name: "Test Model",
245
+ author: {
246
+ name: "test",
247
+ website: "https://test.com",
248
+ },
249
+ description: "",
250
+ extension: ".phd",
251
+ specifications: [],
212
252
  };
213
253
  const strand = {
214
254
  documentId: "test-doc-1",
@@ -1,2 +1,3 @@
1
1
  export declare const LEGACY = true;
2
+ export declare const USE_VERSIONING = false;
2
3
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,OAAO,CAAC;AAC3B,eAAO,MAAM,cAAc,QAAQ,CAAC"}
@@ -1 +1,2 @@
1
1
  export const LEGACY = true;
2
+ export const USE_VERSIONING = false;
@@ -1 +1 @@
1
- {"version":3,"file":"document-model-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/document-model-generator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,eAAe;IACzD,QAAQ,CAAC,sBAAsB,+BAA+B;IAE9D;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IA+BnD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CA+DjE"}
1
+ {"version":3,"file":"document-model-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/document-model-generator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,eAAe;IACzD,QAAQ,CAAC,sBAAsB,+BAA+B;IAE9D;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IA+BnD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAkEjE"}
@@ -1,7 +1,7 @@
1
1
  import { generateFromDocument, generateManifest, generateSubgraphFromDocumentModel, validateDocumentModelState, } from "@powerhousedao/codegen";
2
2
  import { logger } from "../../logger.js";
3
3
  import { BaseDocumentGen } from "../base-document-gen.js";
4
- import { LEGACY } from "./constants.js";
4
+ import { LEGACY, USE_VERSIONING } from "./constants.js";
5
5
  import { backupDocument } from "./utils.js";
6
6
  /**
7
7
  * Generator for document model documents
@@ -38,8 +38,11 @@ export class DocumentModelGenerator extends BaseDocumentGen {
38
38
  // Validation is already done in shouldProcess, so we can proceed directly
39
39
  logger.debug(`🔄 Starting code generation for document model: ${state.name}`);
40
40
  try {
41
- await generateFromDocument(state, this.config.PH_CONFIG, LEGACY, {
42
- verbose: false,
41
+ await generateFromDocument({
42
+ documentModelState: state,
43
+ config: this.config.PH_CONFIG,
44
+ legacy: LEGACY,
45
+ useVersioning: USE_VERSIONING,
43
46
  });
44
47
  await generateSubgraphFromDocumentModel(state.name, state, this.config.PH_CONFIG, { verbose: false });
45
48
  logger.info(`✅ Code generation completed successfully for: ${state.name}`);