@platforma-sdk/test 1.43.3 → 1.43.5
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/test-pl.cjs +1 -1
- package/dist/test-pl.cjs.map +1 -1
- package/dist/test-pl.js +1 -1
- package/dist/test-pl.js.map +1 -1
- package/dist/test-template.cjs +2 -2
- package/dist/test-template.cjs.map +1 -1
- package/dist/test-template.d.ts +2 -2
- package/dist/test-template.d.ts.map +1 -1
- package/dist/test-template.js +2 -2
- package/dist/test-template.js.map +1 -1
- package/package.json +8 -8
package/dist/test-pl.cjs
CHANGED
|
@@ -48,7 +48,7 @@ const plTest = vitest.test.extend({
|
|
|
48
48
|
await use(client);
|
|
49
49
|
onTestFinished(async (task) => {
|
|
50
50
|
if (task.errors !== undefined) {
|
|
51
|
-
console.log(`TEST FAILED SO ALTERNATIVE ROOT IS
|
|
51
|
+
console.log(`TEST FAILED SO ALTERNATIVE ROOT IS PRESERVED IN PL: ${alternativeRoot} (${plMiddleLayer.resourceIdToString(altRootId)})`);
|
|
52
52
|
}
|
|
53
53
|
else {
|
|
54
54
|
const rawClient = await plMiddleLayer.TestHelpers.getTestClient();
|
package/dist/test-pl.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-pl.cjs","sources":["../src/test-pl.ts"],"sourcesContent":["import type {\n OptionalResourceId,\n PlClient,\n ResourceId } from '@milaboratories/pl-middle-layer';\nimport {\n NullResourceId,\n resourceIdToString,\n TestHelpers,\n} from '@milaboratories/pl-middle-layer';\nimport type { SynchronizedTreeOps } from '@milaboratories/pl-tree';\nimport { SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport { randomUUID } from 'crypto';\nimport * as fsp from 'node:fs/promises';\nimport path from 'path';\nimport { test } from 'vitest';\n\nexport const plTest = test.extend<{\n pl: PlClient;\n createTree: (\n res: ResourceId,\n ops?: SynchronizedTreeOps\n ) => Promise<SynchronizedTreeState>;\n rootTree: SynchronizedTreeState;\n tmpFolder: string;\n}>({\n tmpFolder: async ({ onTestFinished }, use) => {\n const workFolder = path.resolve(`work/${randomUUID()}`);\n await fsp.mkdir(workFolder, { recursive: true });\n await use(workFolder);\n onTestFinished(async (task) => {\n if (task.errors !== undefined) {\n console.log(\n `TEST FAILED TMP FOLDER IS PRESERVED: ${workFolder}`,\n );\n } else {\n await fsp.rm(workFolder, { recursive: true });\n }\n });\n },\n\n pl: async ({ onTestFinished }, use) => {\n const alternativeRoot = `test_${Date.now()}_${randomUUID()}`;\n let altRootId: OptionalResourceId = NullResourceId;\n const client = await TestHelpers.getTestClient(alternativeRoot);\n altRootId = client.clientRoot;\n await use(client);\n onTestFinished(async (task) => {\n if (task.errors !== undefined) {\n console.log(\n `TEST FAILED SO ALTERNATIVE ROOT IS
|
|
1
|
+
{"version":3,"file":"test-pl.cjs","sources":["../src/test-pl.ts"],"sourcesContent":["import type {\n OptionalResourceId,\n PlClient,\n ResourceId } from '@milaboratories/pl-middle-layer';\nimport {\n NullResourceId,\n resourceIdToString,\n TestHelpers,\n} from '@milaboratories/pl-middle-layer';\nimport type { SynchronizedTreeOps } from '@milaboratories/pl-tree';\nimport { SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport { randomUUID } from 'crypto';\nimport * as fsp from 'node:fs/promises';\nimport path from 'path';\nimport { test } from 'vitest';\n\nexport const plTest = test.extend<{\n pl: PlClient;\n createTree: (\n res: ResourceId,\n ops?: SynchronizedTreeOps\n ) => Promise<SynchronizedTreeState>;\n rootTree: SynchronizedTreeState;\n tmpFolder: string;\n}>({\n tmpFolder: async ({ onTestFinished }, use) => {\n const workFolder = path.resolve(`work/${randomUUID()}`);\n await fsp.mkdir(workFolder, { recursive: true });\n await use(workFolder);\n onTestFinished(async (task) => {\n if (task.errors !== undefined) {\n console.log(\n `TEST FAILED TMP FOLDER IS PRESERVED: ${workFolder}`,\n );\n } else {\n await fsp.rm(workFolder, { recursive: true });\n }\n });\n },\n\n pl: async ({ onTestFinished }, use) => {\n const alternativeRoot = `test_${Date.now()}_${randomUUID()}`;\n let altRootId: OptionalResourceId = NullResourceId;\n const client = await TestHelpers.getTestClient(alternativeRoot);\n altRootId = client.clientRoot;\n await use(client);\n onTestFinished(async (task) => {\n if (task.errors !== undefined) {\n console.log(\n `TEST FAILED SO ALTERNATIVE ROOT IS PRESERVED IN PL: ${alternativeRoot} (${resourceIdToString(\n altRootId,\n )})`,\n );\n } else {\n const rawClient = await TestHelpers.getTestClient();\n await rawClient.deleteAlternativeRoot(alternativeRoot);\n }\n });\n },\n\n createTree: async ({ pl }, use) => {\n const trees = new Map<ResourceId, Promise<SynchronizedTreeState>>();\n await use((res, ops) => {\n let treePromise = trees.get(res);\n if (treePromise === undefined) {\n treePromise = SynchronizedTreeState.init(\n pl,\n res,\n ops ?? {\n pollingInterval: 200,\n stopPollingDelay: 400,\n },\n );\n trees.set(res, treePromise);\n }\n return treePromise;\n });\n for (const [, treePromise] of trees) {\n // TODO implement termination\n await (await treePromise).terminate();\n }\n },\n\n rootTree: async ({ pl, createTree: tree }, use) => {\n await use(await tree(pl.clientRoot));\n },\n });\n"],"names":["test","randomUUID","fsp","NullResourceId","TestHelpers","resourceIdToString","SynchronizedTreeState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAM,MAAM,GAAGA,WAAI,CAAC,MAAM,CAQ9B;IACG,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,KAAI;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA,KAAA,EAAQC,sBAAU,EAAE,CAAA,CAAE,CAAC;AACvD,QAAA,MAAMC,cAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAChD,QAAA,MAAM,GAAG,CAAC,UAAU,CAAC;AACrB,QAAA,cAAc,CAAC,OAAO,IAAI,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7B,gBAAA,OAAO,CAAC,GAAG,CACT,wCAAwC,UAAU,CAAA,CAAE,CACrD;YACH;iBAAO;AACL,gBAAA,MAAMA,cAAG,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC/C;AACF,QAAA,CAAC,CAAC;IACJ,CAAC;IAED,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,KAAI;QACpC,MAAM,eAAe,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAID,sBAAU,EAAE,CAAA,CAAE;QAC5D,IAAI,SAAS,GAAuBE,4BAAc;QAClD,MAAM,MAAM,GAAG,MAAMC,yBAAW,CAAC,aAAa,CAAC,eAAe,CAAC;AAC/D,QAAA,SAAS,GAAG,MAAM,CAAC,UAAU;AAC7B,QAAA,MAAM,GAAG,CAAC,MAAM,CAAC;AACjB,QAAA,cAAc,CAAC,OAAO,IAAI,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7B,gBAAA,OAAO,CAAC,GAAG,CACT,CAAA,oDAAA,EAAuD,eAAe,CAAA,EAAA,EAAKC,gCAAkB,CAC3F,SAAS,CACV,CAAA,CAAA,CAAG,CACL;YACH;iBAAO;AACL,gBAAA,MAAM,SAAS,GAAG,MAAMD,yBAAW,CAAC,aAAa,EAAE;AACnD,gBAAA,MAAM,SAAS,CAAC,qBAAqB,CAAC,eAAe,CAAC;YACxD;AACF,QAAA,CAAC,CAAC;IACJ,CAAC;IAED,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,KAAI;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C;AACnE,QAAA,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;YACrB,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAChC,YAAA,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,WAAW,GAAGE,4BAAqB,CAAC,IAAI,CACtC,EAAE,EACF,GAAG,EACH,GAAG,IAAI;AACL,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,gBAAgB,EAAE,GAAG;AACtB,iBAAA,CACF;AACD,gBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC;YAC7B;AACA,YAAA,OAAO,WAAW;AACpB,QAAA,CAAC,CAAC;QACF,KAAK,MAAM,GAAG,WAAW,CAAC,IAAI,KAAK,EAAE;;AAEnC,YAAA,MAAM,CAAC,MAAM,WAAW,EAAE,SAAS,EAAE;QACvC;IACF,CAAC;AAED,IAAA,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,KAAI;QAChD,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;AACF,CAAA;;;;"}
|
package/dist/test-pl.js
CHANGED
|
@@ -27,7 +27,7 @@ const plTest = test.extend({
|
|
|
27
27
|
await use(client);
|
|
28
28
|
onTestFinished(async (task) => {
|
|
29
29
|
if (task.errors !== undefined) {
|
|
30
|
-
console.log(`TEST FAILED SO ALTERNATIVE ROOT IS
|
|
30
|
+
console.log(`TEST FAILED SO ALTERNATIVE ROOT IS PRESERVED IN PL: ${alternativeRoot} (${resourceIdToString(altRootId)})`);
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
33
33
|
const rawClient = await TestHelpers.getTestClient();
|
package/dist/test-pl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-pl.js","sources":["../src/test-pl.ts"],"sourcesContent":["import type {\n OptionalResourceId,\n PlClient,\n ResourceId } from '@milaboratories/pl-middle-layer';\nimport {\n NullResourceId,\n resourceIdToString,\n TestHelpers,\n} from '@milaboratories/pl-middle-layer';\nimport type { SynchronizedTreeOps } from '@milaboratories/pl-tree';\nimport { SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport { randomUUID } from 'crypto';\nimport * as fsp from 'node:fs/promises';\nimport path from 'path';\nimport { test } from 'vitest';\n\nexport const plTest = test.extend<{\n pl: PlClient;\n createTree: (\n res: ResourceId,\n ops?: SynchronizedTreeOps\n ) => Promise<SynchronizedTreeState>;\n rootTree: SynchronizedTreeState;\n tmpFolder: string;\n}>({\n tmpFolder: async ({ onTestFinished }, use) => {\n const workFolder = path.resolve(`work/${randomUUID()}`);\n await fsp.mkdir(workFolder, { recursive: true });\n await use(workFolder);\n onTestFinished(async (task) => {\n if (task.errors !== undefined) {\n console.log(\n `TEST FAILED TMP FOLDER IS PRESERVED: ${workFolder}`,\n );\n } else {\n await fsp.rm(workFolder, { recursive: true });\n }\n });\n },\n\n pl: async ({ onTestFinished }, use) => {\n const alternativeRoot = `test_${Date.now()}_${randomUUID()}`;\n let altRootId: OptionalResourceId = NullResourceId;\n const client = await TestHelpers.getTestClient(alternativeRoot);\n altRootId = client.clientRoot;\n await use(client);\n onTestFinished(async (task) => {\n if (task.errors !== undefined) {\n console.log(\n `TEST FAILED SO ALTERNATIVE ROOT IS
|
|
1
|
+
{"version":3,"file":"test-pl.js","sources":["../src/test-pl.ts"],"sourcesContent":["import type {\n OptionalResourceId,\n PlClient,\n ResourceId } from '@milaboratories/pl-middle-layer';\nimport {\n NullResourceId,\n resourceIdToString,\n TestHelpers,\n} from '@milaboratories/pl-middle-layer';\nimport type { SynchronizedTreeOps } from '@milaboratories/pl-tree';\nimport { SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport { randomUUID } from 'crypto';\nimport * as fsp from 'node:fs/promises';\nimport path from 'path';\nimport { test } from 'vitest';\n\nexport const plTest = test.extend<{\n pl: PlClient;\n createTree: (\n res: ResourceId,\n ops?: SynchronizedTreeOps\n ) => Promise<SynchronizedTreeState>;\n rootTree: SynchronizedTreeState;\n tmpFolder: string;\n}>({\n tmpFolder: async ({ onTestFinished }, use) => {\n const workFolder = path.resolve(`work/${randomUUID()}`);\n await fsp.mkdir(workFolder, { recursive: true });\n await use(workFolder);\n onTestFinished(async (task) => {\n if (task.errors !== undefined) {\n console.log(\n `TEST FAILED TMP FOLDER IS PRESERVED: ${workFolder}`,\n );\n } else {\n await fsp.rm(workFolder, { recursive: true });\n }\n });\n },\n\n pl: async ({ onTestFinished }, use) => {\n const alternativeRoot = `test_${Date.now()}_${randomUUID()}`;\n let altRootId: OptionalResourceId = NullResourceId;\n const client = await TestHelpers.getTestClient(alternativeRoot);\n altRootId = client.clientRoot;\n await use(client);\n onTestFinished(async (task) => {\n if (task.errors !== undefined) {\n console.log(\n `TEST FAILED SO ALTERNATIVE ROOT IS PRESERVED IN PL: ${alternativeRoot} (${resourceIdToString(\n altRootId,\n )})`,\n );\n } else {\n const rawClient = await TestHelpers.getTestClient();\n await rawClient.deleteAlternativeRoot(alternativeRoot);\n }\n });\n },\n\n createTree: async ({ pl }, use) => {\n const trees = new Map<ResourceId, Promise<SynchronizedTreeState>>();\n await use((res, ops) => {\n let treePromise = trees.get(res);\n if (treePromise === undefined) {\n treePromise = SynchronizedTreeState.init(\n pl,\n res,\n ops ?? {\n pollingInterval: 200,\n stopPollingDelay: 400,\n },\n );\n trees.set(res, treePromise);\n }\n return treePromise;\n });\n for (const [, treePromise] of trees) {\n // TODO implement termination\n await (await treePromise).terminate();\n }\n },\n\n rootTree: async ({ pl, createTree: tree }, use) => {\n await use(await tree(pl.clientRoot));\n },\n });\n"],"names":[],"mappings":";;;;;;;AAgBO,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAQ9B;IACG,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,KAAI;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA,KAAA,EAAQ,UAAU,EAAE,CAAA,CAAE,CAAC;AACvD,QAAA,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAChD,QAAA,MAAM,GAAG,CAAC,UAAU,CAAC;AACrB,QAAA,cAAc,CAAC,OAAO,IAAI,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7B,gBAAA,OAAO,CAAC,GAAG,CACT,wCAAwC,UAAU,CAAA,CAAE,CACrD;YACH;iBAAO;AACL,gBAAA,MAAM,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC/C;AACF,QAAA,CAAC,CAAC;IACJ,CAAC;IAED,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,KAAI;QACpC,MAAM,eAAe,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,UAAU,EAAE,CAAA,CAAE;QAC5D,IAAI,SAAS,GAAuB,cAAc;QAClD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC;AAC/D,QAAA,SAAS,GAAG,MAAM,CAAC,UAAU;AAC7B,QAAA,MAAM,GAAG,CAAC,MAAM,CAAC;AACjB,QAAA,cAAc,CAAC,OAAO,IAAI,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7B,gBAAA,OAAO,CAAC,GAAG,CACT,CAAA,oDAAA,EAAuD,eAAe,CAAA,EAAA,EAAK,kBAAkB,CAC3F,SAAS,CACV,CAAA,CAAA,CAAG,CACL;YACH;iBAAO;AACL,gBAAA,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE;AACnD,gBAAA,MAAM,SAAS,CAAC,qBAAqB,CAAC,eAAe,CAAC;YACxD;AACF,QAAA,CAAC,CAAC;IACJ,CAAC;IAED,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,KAAI;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C;AACnE,QAAA,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;YACrB,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAChC,YAAA,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,WAAW,GAAG,qBAAqB,CAAC,IAAI,CACtC,EAAE,EACF,GAAG,EACH,GAAG,IAAI;AACL,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,gBAAgB,EAAE,GAAG;AACtB,iBAAA,CACF;AACD,gBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC;YAC7B;AACA,YAAA,OAAO,WAAW;AACpB,QAAA,CAAC,CAAC;QACF,KAAK,MAAM,GAAG,WAAW,CAAC,IAAI,KAAK,EAAE;;AAEnC,YAAA,MAAM,CAAC,MAAM,WAAW,EAAE,SAAS,EAAE;QACvC;IACF,CAAC;AAED,IAAA,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,KAAI;QAChD,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;AACF,CAAA;;;;"}
|
package/dist/test-template.cjs
CHANGED
|
@@ -112,9 +112,9 @@ class TplTestHelpers {
|
|
|
112
112
|
context: ctx,
|
|
113
113
|
};
|
|
114
114
|
});
|
|
115
|
-
|
|
115
|
+
let exports = undefined;
|
|
116
116
|
if (ops.exportProcessor !== undefined) {
|
|
117
|
-
await this.renderTemplate(true, ops.exportProcessor, ['result'], (tx) => ({
|
|
117
|
+
exports = await this.renderTemplate(true, ops.exportProcessor, ['result'], (tx) => ({
|
|
118
118
|
pf: tx.getFutureFieldValue(mainResult.resultEntry.rid, 'context', 'Input'),
|
|
119
119
|
}));
|
|
120
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-template.cjs","sources":["../src/test-template.ts"],"sourcesContent":["import type {\n ComputableCtx,\n ComputableStableDefined,\n UnwrapComputables,\n} from '@milaboratories/computable';\nimport {\n Computable,\n} from '@milaboratories/computable';\nimport type {\n AnyRef,\n MiddleLayerDriverKit,\n PlClient,\n PlTransaction,\n ResourceId,\n TemplateSpecAny } from '@milaboratories/pl-middle-layer';\nimport {\n createRenderTemplate,\n field,\n FieldRef,\n initDriverKit,\n loadTemplate,\n MiddleLayer,\n Pl,\n prepareTemplateSpec,\n toGlobalResourceId,\n} from '@milaboratories/pl-middle-layer';\nimport type { PlTreeEntry, PlTreeNodeAccessor, SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport { ConsoleLoggerAdapter } from '@milaboratories/ts-helpers';\nimport { randomUUID } from 'node:crypto';\nimport * as fsp from 'node:fs/promises';\nimport path from 'node:path';\nimport { plTest } from './test-pl';\n\nexport type WorkflowRenderOps = {\n parent?: ResourceId;\n exportProcessor?: TemplateSpecAny;\n blockId?: string;\n};\n\nexport class TestRenderResults<O extends string> {\n constructor(public readonly resultEntry: PlTreeEntry) {}\n\n public computeOutput<R>(\n name: O,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ): Computable<UnwrapComputables<R> | undefined> {\n return Computable.make((ctx) => {\n const outputAccessor = ctx\n .accessor(this.resultEntry)\n .node()\n .traverse({ field: name, assertFieldType: 'Input' });\n return cb(outputAccessor, ctx);\n });\n }\n}\n\nexport class TestWorkflowResults {\n constructor(\n public readonly renderResult: TestRenderResults<'context' | 'result'>,\n public readonly processedExportsResult: TestRenderResults<'result'> | undefined,\n public readonly blockId: string,\n ) {}\n\n /**\n * Returns context id of this workflow\n * */\n public context(): ComputableStableDefined<ResourceId> {\n return this.renderResult.computeOutput('context', (cb) => cb?.id).withStableType();\n }\n\n /**\n * Returns context id of this workflow\n * */\n public result(): ComputableStableDefined<ResourceId> {\n return this.renderResult.computeOutput('result', (cb) => cb?.id).withStableType();\n }\n\n public export<R>(\n name: string,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ) {\n if (this.processedExportsResult !== undefined)\n return this.processedExportsResult.computeOutput('result', (acc, ctx) => {\n return cb(acc?.traverse({ field: name, assertFieldType: 'Input' }), ctx);\n });\n else\n return this.renderResult.computeOutput('context', (acc, ctx) => {\n return cb(acc?.traverse({ field: `values/${name}`, assertFieldType: 'Input' }), ctx);\n });\n }\n\n public output<R>(\n name: string,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ) {\n return this.renderResult.computeOutput('result', (acc, ctx) => {\n return cb(acc?.traverse({ field: name, assertFieldType: 'Input' }), ctx);\n });\n }\n}\n\nexport class TplTestHelpers {\n constructor(\n private readonly pl: PlClient,\n private readonly resultRootRid: ResourceId,\n private readonly resultRootTree: SynchronizedTreeState,\n ) {}\n\n async renderTemplate<const O extends string>(\n ephemeral: boolean,\n template: string | TemplateSpecAny,\n outputs: O[],\n inputs: (tx: PlTransaction) => Record<string, AnyRef> | Promise<Record<string, AnyRef>>,\n ): Promise<TestRenderResults<O>> {\n const runId = randomUUID();\n const spec\n = typeof template === 'string'\n ? await prepareTemplateSpec({\n type: 'from-file',\n path: `./dist/tengo/tpl/${template}.plj.gz`,\n })\n : await prepareTemplateSpec(template);\n const { resultMapRid } = await this.pl.withWriteTx('TemplateRender', async (tx) => {\n const tpl = loadTemplate(tx, spec);\n const renderedInputs = await inputs(tx);\n // prettier-ignore\n const futureOutputs = await createRenderTemplate(\n tx, tpl, ephemeral, renderedInputs, outputs);\n const resultMap = Pl.createPlMap(tx, futureOutputs, ephemeral);\n tx.createField(field(this.resultRootRid, runId), 'Dynamic', resultMap);\n const resultMapRid = await toGlobalResourceId(resultMap);\n await tx.commit();\n return {\n resultMapRid,\n };\n });\n await this.resultRootTree.refreshState();\n return new TestRenderResults(this.resultRootTree.entry(resultMapRid));\n }\n\n createObject(tx: PlTransaction, value: any) {\n return tx.createValue(Pl.JsonObject, JSON.stringify(value));\n }\n\n async renderWorkflow(\n workflow: string | TemplateSpecAny,\n preRun: boolean,\n args: Record<string, any> | Promise<Record<string, any>>,\n ops: WorkflowRenderOps = {},\n ): Promise<TestWorkflowResults> {\n const blockId = ops.blockId ?? randomUUID();\n const mainResult: TestRenderResults<'result' | 'context'> = await this.renderTemplate(\n true,\n workflow,\n ['result', 'context'],\n (tx) => {\n let ctx = undefined;\n if (ops.parent) {\n ctx = ops.parent;\n } else {\n ctx = tx.createEphemeral({ name: 'BContextEnd', version: '1' });\n tx.lock(ctx);\n }\n\n return {\n args: this.createObject(tx, args),\n blockId: this.createObject(tx, blockId),\n isProduction: this.createObject(tx, !preRun),\n context: ctx,\n };\n },\n );\n\n const exports: TestRenderResults<'result'> | undefined = undefined;\n if (ops.exportProcessor !== undefined) {\n const exports = await this.renderTemplate(true, ops.exportProcessor, ['result'], (tx) => ({\n pf: tx.getFutureFieldValue(mainResult.resultEntry.rid, 'context', 'Input'),\n }));\n }\n\n return new TestWorkflowResults(mainResult, exports, blockId);\n }\n}\n\nexport const tplTest = plTest.extend<{\n helper: TplTestHelpers;\n driverKit: MiddleLayerDriverKit;\n}>({\n helper: async ({ pl, createTree }, use) => {\n const resultMap = await pl.withWriteTx('CreatingHelpers', async (tx) => {\n const map = tx.createEphemeral(Pl.EphStdMap);\n const rootField = field(tx.clientRoot, 'templateTeste');\n tx.createField(rootField, 'Dynamic', map);\n await tx.commit();\n return await toGlobalResourceId(map);\n });\n const resultMapTree = await createTree(resultMap);\n await use(new TplTestHelpers(pl, resultMap, resultMapTree));\n },\n driverKit: async ({ pl, tmpFolder }, use) => {\n const frontendDownloadPath = path.join(tmpFolder, 'frontend');\n\n const driverKit = await initDriverKit(pl, tmpFolder, frontendDownloadPath, {\n localSecret: MiddleLayer.generateLocalSecret(),\n localProjections: [], // TODO must be different with local pl\n openFileDialogCallback: () => {\n throw new Error('Not implemented.');\n },\n });\n\n await use(driverKit);\n },\n});\n"],"names":["Computable","randomUUID","prepareTemplateSpec","loadTemplate","createRenderTemplate","Pl","field","toGlobalResourceId","plTest","initDriverKit","MiddleLayer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-template.cjs","sources":["../src/test-template.ts"],"sourcesContent":["import type {\n ComputableCtx,\n ComputableStableDefined,\n UnwrapComputables,\n} from '@milaboratories/computable';\nimport {\n Computable,\n} from '@milaboratories/computable';\nimport type {\n AnyRef,\n MiddleLayerDriverKit,\n PlClient,\n PlTransaction,\n ResourceId,\n TemplateSpecAny } from '@milaboratories/pl-middle-layer';\nimport {\n createRenderTemplate,\n field,\n initDriverKit,\n loadTemplate,\n MiddleLayer,\n Pl,\n prepareTemplateSpec,\n toGlobalResourceId,\n} from '@milaboratories/pl-middle-layer';\nimport type { PlTreeEntry, PlTreeNodeAccessor, SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport { randomUUID } from 'node:crypto';\nimport path from 'node:path';\nimport { plTest } from './test-pl';\n\nexport type WorkflowRenderOps = {\n parent?: ResourceId;\n exportProcessor?: TemplateSpecAny;\n blockId?: string;\n};\n\nexport class TestRenderResults<O extends string> {\n constructor(public readonly resultEntry: PlTreeEntry) {}\n\n public computeOutput<R>(\n name: O,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ): Computable<UnwrapComputables<R> | undefined> {\n return Computable.make((ctx) => {\n const outputAccessor = ctx\n .accessor(this.resultEntry)\n .node()\n .traverse({ field: name, assertFieldType: 'Input' });\n return cb(outputAccessor, ctx);\n });\n }\n}\n\nexport class TestWorkflowResults {\n constructor(\n public readonly renderResult: TestRenderResults<'context' | 'result'>,\n public readonly processedExportsResult: TestRenderResults<'result'> | undefined,\n public readonly blockId: string,\n ) {}\n\n /**\n * Returns context id of this workflow\n * */\n public context(): ComputableStableDefined<ResourceId> {\n return this.renderResult.computeOutput('context', (cb) => cb?.id).withStableType();\n }\n\n /**\n * Returns context id of this workflow\n * */\n public result(): ComputableStableDefined<ResourceId> {\n return this.renderResult.computeOutput('result', (cb) => cb?.id).withStableType();\n }\n\n public export<R>(\n name: string,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ) {\n if (this.processedExportsResult !== undefined)\n return this.processedExportsResult.computeOutput('result', (acc, ctx) => {\n return cb(acc?.traverse({ field: name, assertFieldType: 'Input' }), ctx);\n });\n else\n return this.renderResult.computeOutput('context', (acc, ctx) => {\n return cb(acc?.traverse({ field: `values/${name}`, assertFieldType: 'Input' }), ctx);\n });\n }\n\n public output<R>(\n name: string,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ) {\n return this.renderResult.computeOutput('result', (acc, ctx) => {\n return cb(acc?.traverse({ field: name, assertFieldType: 'Input' }), ctx);\n });\n }\n}\n\nexport class TplTestHelpers {\n constructor(\n private readonly pl: PlClient,\n private readonly resultRootRid: ResourceId,\n private readonly resultRootTree: SynchronizedTreeState,\n ) {}\n\n async renderTemplate<const O extends string>(\n ephemeral: boolean,\n template: string | TemplateSpecAny,\n outputs: O[],\n inputs: (tx: PlTransaction) => Record<string, AnyRef> | Promise<Record<string, AnyRef>>,\n ): Promise<TestRenderResults<O>> {\n const runId = randomUUID();\n const spec\n = typeof template === 'string'\n ? await prepareTemplateSpec({\n type: 'from-file',\n path: `./dist/tengo/tpl/${template}.plj.gz`,\n })\n : await prepareTemplateSpec(template);\n const { resultMapRid } = await this.pl.withWriteTx('TemplateRender', async (tx) => {\n const tpl = loadTemplate(tx, spec);\n const renderedInputs = await inputs(tx);\n // prettier-ignore\n const futureOutputs = await createRenderTemplate(\n tx, tpl, ephemeral, renderedInputs, outputs);\n const resultMap = Pl.createPlMap(tx, futureOutputs, ephemeral);\n tx.createField(field(this.resultRootRid, runId), 'Dynamic', resultMap);\n const resultMapRid = await toGlobalResourceId(resultMap);\n await tx.commit();\n return {\n resultMapRid,\n };\n });\n await this.resultRootTree.refreshState();\n return new TestRenderResults(this.resultRootTree.entry(resultMapRid));\n }\n\n createObject(tx: PlTransaction, value: unknown) {\n return tx.createValue(Pl.JsonObject, JSON.stringify(value));\n }\n\n async renderWorkflow(\n workflow: string | TemplateSpecAny,\n preRun: boolean,\n args: Record<string, unknown> | Promise<Record<string, unknown>>,\n ops: WorkflowRenderOps = {},\n ): Promise<TestWorkflowResults> {\n const blockId = ops.blockId ?? randomUUID();\n const mainResult: TestRenderResults<'result' | 'context'> = await this.renderTemplate(\n true,\n workflow,\n ['result', 'context'],\n (tx) => {\n let ctx = undefined;\n if (ops.parent) {\n ctx = ops.parent;\n } else {\n ctx = tx.createEphemeral({ name: 'BContextEnd', version: '1' });\n tx.lock(ctx);\n }\n\n return {\n args: this.createObject(tx, args),\n blockId: this.createObject(tx, blockId),\n isProduction: this.createObject(tx, !preRun),\n context: ctx,\n };\n },\n );\n\n let exports: TestRenderResults<'result'> | undefined = undefined;\n if (ops.exportProcessor !== undefined) {\n exports = await this.renderTemplate(true, ops.exportProcessor, ['result'], (tx) => ({\n pf: tx.getFutureFieldValue(mainResult.resultEntry.rid, 'context', 'Input'),\n }));\n }\n\n return new TestWorkflowResults(mainResult, exports, blockId);\n }\n}\n\nexport const tplTest = plTest.extend<{\n helper: TplTestHelpers;\n driverKit: MiddleLayerDriverKit;\n}>({\n helper: async ({ pl, createTree }, use) => {\n const resultMap = await pl.withWriteTx('CreatingHelpers', async (tx) => {\n const map = tx.createEphemeral(Pl.EphStdMap);\n const rootField = field(tx.clientRoot, 'templateTeste');\n tx.createField(rootField, 'Dynamic', map);\n await tx.commit();\n return await toGlobalResourceId(map);\n });\n const resultMapTree = await createTree(resultMap);\n await use(new TplTestHelpers(pl, resultMap, resultMapTree));\n },\n driverKit: async ({ pl, tmpFolder }, use) => {\n const frontendDownloadPath = path.join(tmpFolder, 'frontend');\n\n const driverKit = await initDriverKit(pl, tmpFolder, frontendDownloadPath, {\n localSecret: MiddleLayer.generateLocalSecret(),\n localProjections: [], // TODO must be different with local pl\n openFileDialogCallback: () => {\n throw new Error('Not implemented.');\n },\n });\n\n await use(driverKit);\n },\n});\n"],"names":["Computable","randomUUID","prepareTemplateSpec","loadTemplate","createRenderTemplate","Pl","field","toGlobalResourceId","plTest","initDriverKit","MiddleLayer"],"mappings":"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"}
|
package/dist/test-template.d.ts
CHANGED
|
@@ -34,8 +34,8 @@ export declare class TplTestHelpers {
|
|
|
34
34
|
private readonly resultRootTree;
|
|
35
35
|
constructor(pl: PlClient, resultRootRid: ResourceId, resultRootTree: SynchronizedTreeState);
|
|
36
36
|
renderTemplate<const O extends string>(ephemeral: boolean, template: string | TemplateSpecAny, outputs: O[], inputs: (tx: PlTransaction) => Record<string, AnyRef> | Promise<Record<string, AnyRef>>): Promise<TestRenderResults<O>>;
|
|
37
|
-
createObject(tx: PlTransaction, value:
|
|
38
|
-
renderWorkflow(workflow: string | TemplateSpecAny, preRun: boolean, args: Record<string,
|
|
37
|
+
createObject(tx: PlTransaction, value: unknown): import("@milaboratories/pl-client").ResourceRef;
|
|
38
|
+
renderWorkflow(workflow: string | TemplateSpecAny, preRun: boolean, args: Record<string, unknown> | Promise<Record<string, unknown>>, ops?: WorkflowRenderOps): Promise<TestWorkflowResults>;
|
|
39
39
|
}
|
|
40
40
|
export declare const tplTest: import("vitest").TestAPI<{
|
|
41
41
|
pl: PlClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-template.d.ts","sourceRoot":"","sources":["../src/test-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,MAAM,EACN,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,UAAU,EACV,eAAe,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"test-template.d.ts","sourceRoot":"","sources":["../src/test-template.ts"],"names":[],"mappings":"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"}
|
package/dist/test-template.js
CHANGED
|
@@ -110,9 +110,9 @@ class TplTestHelpers {
|
|
|
110
110
|
context: ctx,
|
|
111
111
|
};
|
|
112
112
|
});
|
|
113
|
-
|
|
113
|
+
let exports = undefined;
|
|
114
114
|
if (ops.exportProcessor !== undefined) {
|
|
115
|
-
await this.renderTemplate(true, ops.exportProcessor, ['result'], (tx) => ({
|
|
115
|
+
exports = await this.renderTemplate(true, ops.exportProcessor, ['result'], (tx) => ({
|
|
116
116
|
pf: tx.getFutureFieldValue(mainResult.resultEntry.rid, 'context', 'Input'),
|
|
117
117
|
}));
|
|
118
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-template.js","sources":["../src/test-template.ts"],"sourcesContent":["import type {\n ComputableCtx,\n ComputableStableDefined,\n UnwrapComputables,\n} from '@milaboratories/computable';\nimport {\n Computable,\n} from '@milaboratories/computable';\nimport type {\n AnyRef,\n MiddleLayerDriverKit,\n PlClient,\n PlTransaction,\n ResourceId,\n TemplateSpecAny } from '@milaboratories/pl-middle-layer';\nimport {\n createRenderTemplate,\n field,\n FieldRef,\n initDriverKit,\n loadTemplate,\n MiddleLayer,\n Pl,\n prepareTemplateSpec,\n toGlobalResourceId,\n} from '@milaboratories/pl-middle-layer';\nimport type { PlTreeEntry, PlTreeNodeAccessor, SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport { ConsoleLoggerAdapter } from '@milaboratories/ts-helpers';\nimport { randomUUID } from 'node:crypto';\nimport * as fsp from 'node:fs/promises';\nimport path from 'node:path';\nimport { plTest } from './test-pl';\n\nexport type WorkflowRenderOps = {\n parent?: ResourceId;\n exportProcessor?: TemplateSpecAny;\n blockId?: string;\n};\n\nexport class TestRenderResults<O extends string> {\n constructor(public readonly resultEntry: PlTreeEntry) {}\n\n public computeOutput<R>(\n name: O,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ): Computable<UnwrapComputables<R> | undefined> {\n return Computable.make((ctx) => {\n const outputAccessor = ctx\n .accessor(this.resultEntry)\n .node()\n .traverse({ field: name, assertFieldType: 'Input' });\n return cb(outputAccessor, ctx);\n });\n }\n}\n\nexport class TestWorkflowResults {\n constructor(\n public readonly renderResult: TestRenderResults<'context' | 'result'>,\n public readonly processedExportsResult: TestRenderResults<'result'> | undefined,\n public readonly blockId: string,\n ) {}\n\n /**\n * Returns context id of this workflow\n * */\n public context(): ComputableStableDefined<ResourceId> {\n return this.renderResult.computeOutput('context', (cb) => cb?.id).withStableType();\n }\n\n /**\n * Returns context id of this workflow\n * */\n public result(): ComputableStableDefined<ResourceId> {\n return this.renderResult.computeOutput('result', (cb) => cb?.id).withStableType();\n }\n\n public export<R>(\n name: string,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ) {\n if (this.processedExportsResult !== undefined)\n return this.processedExportsResult.computeOutput('result', (acc, ctx) => {\n return cb(acc?.traverse({ field: name, assertFieldType: 'Input' }), ctx);\n });\n else\n return this.renderResult.computeOutput('context', (acc, ctx) => {\n return cb(acc?.traverse({ field: `values/${name}`, assertFieldType: 'Input' }), ctx);\n });\n }\n\n public output<R>(\n name: string,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ) {\n return this.renderResult.computeOutput('result', (acc, ctx) => {\n return cb(acc?.traverse({ field: name, assertFieldType: 'Input' }), ctx);\n });\n }\n}\n\nexport class TplTestHelpers {\n constructor(\n private readonly pl: PlClient,\n private readonly resultRootRid: ResourceId,\n private readonly resultRootTree: SynchronizedTreeState,\n ) {}\n\n async renderTemplate<const O extends string>(\n ephemeral: boolean,\n template: string | TemplateSpecAny,\n outputs: O[],\n inputs: (tx: PlTransaction) => Record<string, AnyRef> | Promise<Record<string, AnyRef>>,\n ): Promise<TestRenderResults<O>> {\n const runId = randomUUID();\n const spec\n = typeof template === 'string'\n ? await prepareTemplateSpec({\n type: 'from-file',\n path: `./dist/tengo/tpl/${template}.plj.gz`,\n })\n : await prepareTemplateSpec(template);\n const { resultMapRid } = await this.pl.withWriteTx('TemplateRender', async (tx) => {\n const tpl = loadTemplate(tx, spec);\n const renderedInputs = await inputs(tx);\n // prettier-ignore\n const futureOutputs = await createRenderTemplate(\n tx, tpl, ephemeral, renderedInputs, outputs);\n const resultMap = Pl.createPlMap(tx, futureOutputs, ephemeral);\n tx.createField(field(this.resultRootRid, runId), 'Dynamic', resultMap);\n const resultMapRid = await toGlobalResourceId(resultMap);\n await tx.commit();\n return {\n resultMapRid,\n };\n });\n await this.resultRootTree.refreshState();\n return new TestRenderResults(this.resultRootTree.entry(resultMapRid));\n }\n\n createObject(tx: PlTransaction, value: any) {\n return tx.createValue(Pl.JsonObject, JSON.stringify(value));\n }\n\n async renderWorkflow(\n workflow: string | TemplateSpecAny,\n preRun: boolean,\n args: Record<string, any> | Promise<Record<string, any>>,\n ops: WorkflowRenderOps = {},\n ): Promise<TestWorkflowResults> {\n const blockId = ops.blockId ?? randomUUID();\n const mainResult: TestRenderResults<'result' | 'context'> = await this.renderTemplate(\n true,\n workflow,\n ['result', 'context'],\n (tx) => {\n let ctx = undefined;\n if (ops.parent) {\n ctx = ops.parent;\n } else {\n ctx = tx.createEphemeral({ name: 'BContextEnd', version: '1' });\n tx.lock(ctx);\n }\n\n return {\n args: this.createObject(tx, args),\n blockId: this.createObject(tx, blockId),\n isProduction: this.createObject(tx, !preRun),\n context: ctx,\n };\n },\n );\n\n const exports: TestRenderResults<'result'> | undefined = undefined;\n if (ops.exportProcessor !== undefined) {\n const exports = await this.renderTemplate(true, ops.exportProcessor, ['result'], (tx) => ({\n pf: tx.getFutureFieldValue(mainResult.resultEntry.rid, 'context', 'Input'),\n }));\n }\n\n return new TestWorkflowResults(mainResult, exports, blockId);\n }\n}\n\nexport const tplTest = plTest.extend<{\n helper: TplTestHelpers;\n driverKit: MiddleLayerDriverKit;\n}>({\n helper: async ({ pl, createTree }, use) => {\n const resultMap = await pl.withWriteTx('CreatingHelpers', async (tx) => {\n const map = tx.createEphemeral(Pl.EphStdMap);\n const rootField = field(tx.clientRoot, 'templateTeste');\n tx.createField(rootField, 'Dynamic', map);\n await tx.commit();\n return await toGlobalResourceId(map);\n });\n const resultMapTree = await createTree(resultMap);\n await use(new TplTestHelpers(pl, resultMap, resultMapTree));\n },\n driverKit: async ({ pl, tmpFolder }, use) => {\n const frontendDownloadPath = path.join(tmpFolder, 'frontend');\n\n const driverKit = await initDriverKit(pl, tmpFolder, frontendDownloadPath, {\n localSecret: MiddleLayer.generateLocalSecret(),\n localProjections: [], // TODO must be different with local pl\n openFileDialogCallback: () => {\n throw new Error('Not implemented.');\n },\n });\n\n await use(driverKit);\n },\n});\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-template.js","sources":["../src/test-template.ts"],"sourcesContent":["import type {\n ComputableCtx,\n ComputableStableDefined,\n UnwrapComputables,\n} from '@milaboratories/computable';\nimport {\n Computable,\n} from '@milaboratories/computable';\nimport type {\n AnyRef,\n MiddleLayerDriverKit,\n PlClient,\n PlTransaction,\n ResourceId,\n TemplateSpecAny } from '@milaboratories/pl-middle-layer';\nimport {\n createRenderTemplate,\n field,\n initDriverKit,\n loadTemplate,\n MiddleLayer,\n Pl,\n prepareTemplateSpec,\n toGlobalResourceId,\n} from '@milaboratories/pl-middle-layer';\nimport type { PlTreeEntry, PlTreeNodeAccessor, SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport { randomUUID } from 'node:crypto';\nimport path from 'node:path';\nimport { plTest } from './test-pl';\n\nexport type WorkflowRenderOps = {\n parent?: ResourceId;\n exportProcessor?: TemplateSpecAny;\n blockId?: string;\n};\n\nexport class TestRenderResults<O extends string> {\n constructor(public readonly resultEntry: PlTreeEntry) {}\n\n public computeOutput<R>(\n name: O,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ): Computable<UnwrapComputables<R> | undefined> {\n return Computable.make((ctx) => {\n const outputAccessor = ctx\n .accessor(this.resultEntry)\n .node()\n .traverse({ field: name, assertFieldType: 'Input' });\n return cb(outputAccessor, ctx);\n });\n }\n}\n\nexport class TestWorkflowResults {\n constructor(\n public readonly renderResult: TestRenderResults<'context' | 'result'>,\n public readonly processedExportsResult: TestRenderResults<'result'> | undefined,\n public readonly blockId: string,\n ) {}\n\n /**\n * Returns context id of this workflow\n * */\n public context(): ComputableStableDefined<ResourceId> {\n return this.renderResult.computeOutput('context', (cb) => cb?.id).withStableType();\n }\n\n /**\n * Returns context id of this workflow\n * */\n public result(): ComputableStableDefined<ResourceId> {\n return this.renderResult.computeOutput('result', (cb) => cb?.id).withStableType();\n }\n\n public export<R>(\n name: string,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ) {\n if (this.processedExportsResult !== undefined)\n return this.processedExportsResult.computeOutput('result', (acc, ctx) => {\n return cb(acc?.traverse({ field: name, assertFieldType: 'Input' }), ctx);\n });\n else\n return this.renderResult.computeOutput('context', (acc, ctx) => {\n return cb(acc?.traverse({ field: `values/${name}`, assertFieldType: 'Input' }), ctx);\n });\n }\n\n public output<R>(\n name: string,\n cb: (acc: PlTreeNodeAccessor | undefined, ctx: ComputableCtx) => R,\n ) {\n return this.renderResult.computeOutput('result', (acc, ctx) => {\n return cb(acc?.traverse({ field: name, assertFieldType: 'Input' }), ctx);\n });\n }\n}\n\nexport class TplTestHelpers {\n constructor(\n private readonly pl: PlClient,\n private readonly resultRootRid: ResourceId,\n private readonly resultRootTree: SynchronizedTreeState,\n ) {}\n\n async renderTemplate<const O extends string>(\n ephemeral: boolean,\n template: string | TemplateSpecAny,\n outputs: O[],\n inputs: (tx: PlTransaction) => Record<string, AnyRef> | Promise<Record<string, AnyRef>>,\n ): Promise<TestRenderResults<O>> {\n const runId = randomUUID();\n const spec\n = typeof template === 'string'\n ? await prepareTemplateSpec({\n type: 'from-file',\n path: `./dist/tengo/tpl/${template}.plj.gz`,\n })\n : await prepareTemplateSpec(template);\n const { resultMapRid } = await this.pl.withWriteTx('TemplateRender', async (tx) => {\n const tpl = loadTemplate(tx, spec);\n const renderedInputs = await inputs(tx);\n // prettier-ignore\n const futureOutputs = await createRenderTemplate(\n tx, tpl, ephemeral, renderedInputs, outputs);\n const resultMap = Pl.createPlMap(tx, futureOutputs, ephemeral);\n tx.createField(field(this.resultRootRid, runId), 'Dynamic', resultMap);\n const resultMapRid = await toGlobalResourceId(resultMap);\n await tx.commit();\n return {\n resultMapRid,\n };\n });\n await this.resultRootTree.refreshState();\n return new TestRenderResults(this.resultRootTree.entry(resultMapRid));\n }\n\n createObject(tx: PlTransaction, value: unknown) {\n return tx.createValue(Pl.JsonObject, JSON.stringify(value));\n }\n\n async renderWorkflow(\n workflow: string | TemplateSpecAny,\n preRun: boolean,\n args: Record<string, unknown> | Promise<Record<string, unknown>>,\n ops: WorkflowRenderOps = {},\n ): Promise<TestWorkflowResults> {\n const blockId = ops.blockId ?? randomUUID();\n const mainResult: TestRenderResults<'result' | 'context'> = await this.renderTemplate(\n true,\n workflow,\n ['result', 'context'],\n (tx) => {\n let ctx = undefined;\n if (ops.parent) {\n ctx = ops.parent;\n } else {\n ctx = tx.createEphemeral({ name: 'BContextEnd', version: '1' });\n tx.lock(ctx);\n }\n\n return {\n args: this.createObject(tx, args),\n blockId: this.createObject(tx, blockId),\n isProduction: this.createObject(tx, !preRun),\n context: ctx,\n };\n },\n );\n\n let exports: TestRenderResults<'result'> | undefined = undefined;\n if (ops.exportProcessor !== undefined) {\n exports = await this.renderTemplate(true, ops.exportProcessor, ['result'], (tx) => ({\n pf: tx.getFutureFieldValue(mainResult.resultEntry.rid, 'context', 'Input'),\n }));\n }\n\n return new TestWorkflowResults(mainResult, exports, blockId);\n }\n}\n\nexport const tplTest = plTest.extend<{\n helper: TplTestHelpers;\n driverKit: MiddleLayerDriverKit;\n}>({\n helper: async ({ pl, createTree }, use) => {\n const resultMap = await pl.withWriteTx('CreatingHelpers', async (tx) => {\n const map = tx.createEphemeral(Pl.EphStdMap);\n const rootField = field(tx.clientRoot, 'templateTeste');\n tx.createField(rootField, 'Dynamic', map);\n await tx.commit();\n return await toGlobalResourceId(map);\n });\n const resultMapTree = await createTree(resultMap);\n await use(new TplTestHelpers(pl, resultMap, resultMapTree));\n },\n driverKit: async ({ pl, tmpFolder }, use) => {\n const frontendDownloadPath = path.join(tmpFolder, 'frontend');\n\n const driverKit = await initDriverKit(pl, tmpFolder, frontendDownloadPath, {\n localSecret: MiddleLayer.generateLocalSecret(),\n localProjections: [], // TODO must be different with local pl\n openFileDialogCallback: () => {\n throw new Error('Not implemented.');\n },\n });\n\n await use(driverKit);\n },\n});\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/test",
|
|
3
|
-
"version": "1.43.
|
|
3
|
+
"version": "1.43.5",
|
|
4
4
|
"description": "Typescript Block Test Helpers",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -18,19 +18,19 @@
|
|
|
18
18
|
"license": "UNLICENSED",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"vitest": "^2.1.9",
|
|
21
|
-
"@milaboratories/
|
|
21
|
+
"@milaboratories/pl-middle-layer": "1.42.40",
|
|
22
22
|
"@platforma-sdk/model": "1.43.2",
|
|
23
|
-
"@milaboratories/pl-client": "2.12.
|
|
24
|
-
"@milaboratories/
|
|
25
|
-
"@milaboratories/
|
|
26
|
-
"@milaboratories/
|
|
23
|
+
"@milaboratories/pl-client": "2.12.2",
|
|
24
|
+
"@milaboratories/computable": "2.6.8",
|
|
25
|
+
"@milaboratories/pl-tree": "1.7.13",
|
|
26
|
+
"@milaboratories/ts-helpers": "1.4.7"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "~20.16.15",
|
|
30
30
|
"typescript": "~5.6.3",
|
|
31
31
|
"@milaboratories/ts-builder": "1.0.5",
|
|
32
|
-
"@milaboratories/
|
|
33
|
-
"@milaboratories/
|
|
32
|
+
"@milaboratories/build-configs": "1.0.8",
|
|
33
|
+
"@milaboratories/ts-configs": "1.0.6"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"type-check": "ts-builder types --target node",
|