Skip to content

Commit e817770

Browse files
authored
Merge pull request #245 from objectstack-ai/copilot/update-workflow-files
2 parents e0be034 + 98a79cd commit e817770

11 files changed

Lines changed: 402 additions & 13 deletions

File tree

packages/drivers/excel/jest.config.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,14 @@ module.exports = {
1313
collectCoverageFrom: ['src/**/*.ts'],
1414
moduleNameMapper: {
1515
'^@objectql/types$': '<rootDir>/../../foundation/types/src',
16-
}
16+
},
17+
transform: {
18+
'^.+\\.ts$': ['ts-jest', {
19+
isolatedModules: true,
20+
tsconfig: {
21+
esModuleInterop: true,
22+
allowSyntheticDefaultImports: true,
23+
}
24+
}],
25+
},
1726
};

packages/drivers/fs/jest.config.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,14 @@ module.exports = {
1313
collectCoverageFrom: ['src/**/*.ts'],
1414
moduleNameMapper: {
1515
'^@objectql/types$': '<rootDir>/../../foundation/types/src',
16-
}
16+
},
17+
transform: {
18+
'^.+\\.ts$': ['ts-jest', {
19+
isolatedModules: true,
20+
tsconfig: {
21+
esModuleInterop: true,
22+
allowSyntheticDefaultImports: true,
23+
}
24+
}],
25+
},
1726
};

packages/drivers/memory/jest.config.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,14 @@ module.exports = {
1313
collectCoverageFrom: ['src/**/*.ts'],
1414
moduleNameMapper: {
1515
'^@objectql/types$': '<rootDir>/../../foundation/types/src',
16-
}
16+
},
17+
transform: {
18+
'^.+\\.ts$': ['ts-jest', {
19+
isolatedModules: true,
20+
tsconfig: {
21+
esModuleInterop: true,
22+
allowSyntheticDefaultImports: true,
23+
}
24+
}],
25+
},
1726
};

packages/foundation/platform-node/jest.config.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ module.exports = {
1111
testEnvironment: 'node',
1212
testMatch: ['**/test/**/*.test.ts'],
1313
moduleNameMapper: {
14-
'^@objectstack/runtime$': '<rootDir>/../../../../spec/packages/runtime/src',
15-
'^@objectstack/core$': '<rootDir>/../../../../spec/packages/core/src',
16-
'^@objectstack/objectql$': '<rootDir>/../../../../spec/packages/objectql/src',
14+
'^@objectstack/runtime$': '<rootDir>/test/__mocks__/@objectstack/runtime.ts',
15+
'^@objectstack/core$': '<rootDir>/test/__mocks__/@objectstack/core.ts',
16+
'^@objectstack/objectql$': '<rootDir>/test/__mocks__/@objectstack/objectql.ts',
1717
'^@objectql/(.*)$': '<rootDir>/../$1/src',
1818
'^(.*)\\.js$': '$1',
1919
},
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* Mock for @objectstack/core
3+
* Re-exports from runtime mock for backward compatibility
4+
*/
5+
6+
export * from './runtime';
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/**
2+
* Mock for @objectstack/objectql
3+
* Provides minimal mock implementations for ObjectQL and SchemaRegistry
4+
*/
5+
6+
export class ObjectQL {
7+
constructor() {}
8+
}
9+
10+
export class SchemaRegistry {
11+
// Named 'metadata' to match what app.ts expects in unregisterPackage
12+
private static metadata = new Map<string, Map<string, any>>();
13+
14+
constructor() {}
15+
16+
static registerItem(type: string, item: any, idField: string = 'id'): void {
17+
if (!SchemaRegistry.metadata.has(type)) {
18+
SchemaRegistry.metadata.set(type, new Map());
19+
}
20+
const typeMap = SchemaRegistry.metadata.get(type)!;
21+
const id = item[idField];
22+
typeMap.set(id, item);
23+
}
24+
25+
static getItem(type: string, id: string): any {
26+
const typeMap = SchemaRegistry.metadata.get(type);
27+
return typeMap ? typeMap.get(id) : undefined;
28+
}
29+
30+
static listItems(type: string): any[] {
31+
const typeMap = SchemaRegistry.metadata.get(type);
32+
return typeMap ? Array.from(typeMap.values()) : [];
33+
}
34+
35+
static unregisterPackage(packageName: string): void {
36+
for (const typeMap of SchemaRegistry.metadata.values()) {
37+
const toDelete: string[] = [];
38+
for (const [id, item] of typeMap.entries()) {
39+
if (item.package === packageName || item.packageName === packageName) {
40+
toDelete.push(id);
41+
}
42+
}
43+
toDelete.forEach(id => typeMap.delete(id));
44+
}
45+
}
46+
47+
static clear(): void {
48+
SchemaRegistry.metadata.clear();
49+
}
50+
51+
register(schema: any): void {}
52+
get(name: string): any { return null; }
53+
list(): any[] { return []; }
54+
}
55+
56+
export interface ObjectStackProtocolImplementation {
57+
name: string;
58+
handle(request: any): Promise<any>;
59+
}

packages/foundation/platform-node/test/__mocks__/@objectstack/runtime.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,14 +200,14 @@ export class ObjectKernel {
200200

201201
export class ObjectStackProtocolImplementation {}
202202

203-
export interface any {
203+
export interface PluginContext {
204204
engine: ObjectKernel;
205205
}
206206

207207
export interface ObjectQLPlugin {
208208
name: string;
209-
install?: (ctx: any) => void | Promise<void>;
210-
onStart?: (ctx: any) => void | Promise<void>;
209+
install?: (ctx: PluginContext) => void | Promise<void>;
210+
onStart?: (ctx: PluginContext) => void | Promise<void>;
211211
}
212212

213213
// Export MetadataRegistry

packages/runtime/server/jest.config.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,22 @@ module.exports = {
1111
testEnvironment: 'node',
1212
testMatch: ['**/*.test.ts'],
1313
moduleNameMapper: {
14-
'^@objectstack/runtime$': '<rootDir>/../../../../spec/packages/runtime/src',
15-
'^@objectstack/core$': '<rootDir>/../../../../spec/packages/core/src',
16-
'^@objectstack/objectql$': '<rootDir>/../../../../spec/packages/objectql/src',
14+
'^@objectstack/runtime$': '<rootDir>/test/__mocks__/@objectstack/runtime.ts',
15+
'^@objectstack/core$': '<rootDir>/test/__mocks__/@objectstack/core.ts',
16+
'^@objectstack/objectql$': '<rootDir>/test/__mocks__/@objectstack/objectql.ts',
1717
'^@objectql/types$': '<rootDir>/../../foundation/types/src',
1818
'^@objectql/core$': '<rootDir>/../../foundation/core/src',
1919
'^@objectql/driver-sql$': '<rootDir>/../../drivers/sql/src',
2020
'^@objectql/driver-mongo$': '<rootDir>/../../drivers/mongo/src',
2121
'^(.*)\\.js$': '$1',
22-
}
22+
},
23+
transform: {
24+
'^.+\\.ts$': ['ts-jest', {
25+
isolatedModules: true,
26+
tsconfig: {
27+
esModuleInterop: true,
28+
allowSyntheticDefaultImports: true,
29+
}
30+
}],
31+
},
2332
};
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* Mock for @objectstack/core
3+
* Re-exports from runtime mock for backward compatibility
4+
*/
5+
6+
export * from './runtime';
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/**
2+
* Mock for @objectstack/objectql
3+
* Provides minimal mock implementations for ObjectQL and SchemaRegistry
4+
*/
5+
6+
export class ObjectQL {
7+
constructor() {}
8+
}
9+
10+
export class SchemaRegistry {
11+
// Named 'metadata' to match what app.ts expects in unregisterPackage
12+
private static metadata = new Map<string, Map<string, any>>();
13+
14+
constructor() {}
15+
16+
static registerItem(type: string, item: any, idField: string = 'id'): void {
17+
if (!SchemaRegistry.metadata.has(type)) {
18+
SchemaRegistry.metadata.set(type, new Map());
19+
}
20+
const typeMap = SchemaRegistry.metadata.get(type)!;
21+
const id = item[idField];
22+
typeMap.set(id, item);
23+
}
24+
25+
static getItem(type: string, id: string): any {
26+
const typeMap = SchemaRegistry.metadata.get(type);
27+
return typeMap ? typeMap.get(id) : undefined;
28+
}
29+
30+
static listItems(type: string): any[] {
31+
const typeMap = SchemaRegistry.metadata.get(type);
32+
return typeMap ? Array.from(typeMap.values()) : [];
33+
}
34+
35+
static unregisterPackage(packageName: string): void {
36+
for (const typeMap of SchemaRegistry.metadata.values()) {
37+
const toDelete: string[] = [];
38+
for (const [id, item] of typeMap.entries()) {
39+
if (item.package === packageName || item.packageName === packageName) {
40+
toDelete.push(id);
41+
}
42+
}
43+
toDelete.forEach(id => typeMap.delete(id));
44+
}
45+
}
46+
47+
static clear(): void {
48+
SchemaRegistry.metadata.clear();
49+
}
50+
51+
register(schema: any): void {}
52+
get(name: string): any { return null; }
53+
list(): any[] { return []; }
54+
}
55+
56+
export interface ObjectStackProtocolImplementation {
57+
name: string;
58+
handle(request: any): Promise<any>;
59+
}

0 commit comments

Comments
 (0)