@proteinjs/db 1.47.3 → 1.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +1 -1
- package/.prettierignore +2 -1
- package/CHANGELOG.md +37 -0
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +1 -3
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/test/index.d.ts.map +1 -1
- package/dist/generated/test/index.js +1 -3
- package/dist/generated/test/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/src/Db.d.ts +9 -0
- package/dist/src/Db.d.ts.map +1 -1
- package/dist/src/Db.js +2 -2
- package/dist/src/Db.js.map +1 -1
- package/dist/src/MigrationRunner.js +2 -2
- package/dist/src/MigrationRunner.js.map +1 -1
- package/dist/src/Table.d.ts +16 -1
- package/dist/src/Table.d.ts.map +1 -1
- package/dist/src/Table.js +14 -0
- package/dist/src/Table.js.map +1 -1
- package/dist/src/auth/TableAuth.d.ts +4 -0
- package/dist/src/auth/TableAuth.d.ts.map +1 -1
- package/dist/src/auth/TableAuth.js +12 -0
- package/dist/src/auth/TableAuth.js.map +1 -1
- package/dist/src/auth/TableServiceAuth.d.ts.map +1 -1
- package/dist/src/auth/TableServiceAuth.js +5 -0
- package/dist/src/auth/TableServiceAuth.js.map +1 -1
- package/dist/src/schema/SchemaOperations.d.ts +4 -3
- package/dist/src/schema/SchemaOperations.d.ts.map +1 -1
- package/dist/src/schema/TableManager.d.ts +24 -6
- package/dist/src/schema/TableManager.d.ts.map +1 -1
- package/dist/src/schema/TableManager.js +93 -26
- package/dist/src/schema/TableManager.js.map +1 -1
- package/dist/src/services/TransactionRunnerService.d.ts +20 -1
- package/dist/src/services/TransactionRunnerService.d.ts.map +1 -1
- package/dist/src/source/SourceRecord.d.ts +2 -2
- package/dist/src/source/{SourceRecordLoader.d.ts → SourceRecordSyncRunner.d.ts} +15 -7
- package/dist/src/source/SourceRecordSyncRunner.d.ts.map +1 -0
- package/dist/src/source/{SourceRecordLoader.js → SourceRecordSyncRunner.js} +46 -31
- package/dist/src/source/SourceRecordSyncRunner.js.map +1 -0
- package/dist/src/tables/MigrationTable.d.ts +10 -2
- package/dist/src/tables/MigrationTable.d.ts.map +1 -1
- package/dist/src/tables/MigrationTable.js +12 -4
- package/dist/src/tables/MigrationTable.js.map +1 -1
- package/dist/src/transaction/Transaction.d.ts +6 -1
- package/dist/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/src/transaction/Transaction.js +13 -2
- package/dist/src/transaction/Transaction.js.map +1 -1
- package/dist/src/transaction/TransactionRunner.d.ts +45 -2
- package/dist/src/transaction/TransactionRunner.d.ts.map +1 -1
- package/dist/src/transaction/TransactionRunner.js +227 -26
- package/dist/src/transaction/TransactionRunner.js.map +1 -1
- package/dist/test/DurableTable.test.d.ts +2 -0
- package/dist/test/DurableTable.test.d.ts.map +1 -0
- package/dist/test/DurableTable.test.js +172 -0
- package/dist/test/DurableTable.test.js.map +1 -0
- package/dist/test/MigrationAuth.test.js +12 -9
- package/dist/test/MigrationAuth.test.js.map +1 -1
- package/dist/test/SchemaReconcileLines.test.d.ts +2 -0
- package/dist/test/SchemaReconcileLines.test.d.ts.map +1 -0
- package/dist/test/SchemaReconcileLines.test.js +176 -0
- package/dist/test/SchemaReconcileLines.test.js.map +1 -0
- package/dist/test/SourceRecordLoaderQualifiedName.test.d.ts +2 -0
- package/dist/test/SourceRecordLoaderQualifiedName.test.d.ts.map +1 -0
- package/dist/test/SourceRecordLoaderQualifiedName.test.js +79 -0
- package/dist/test/SourceRecordLoaderQualifiedName.test.js.map +1 -0
- package/dist/test/SourceRecordSyncRunner.test.d.ts +2 -0
- package/dist/test/SourceRecordSyncRunner.test.d.ts.map +1 -0
- package/dist/test/{SourceRecordLoader.test.js → SourceRecordSyncRunner.test.js} +63 -7
- package/dist/test/SourceRecordSyncRunner.test.js.map +1 -0
- package/dist/test/TableManagerCreateOrder.test.d.ts +2 -0
- package/dist/test/TableManagerCreateOrder.test.d.ts.map +1 -0
- package/dist/test/TableManagerCreateOrder.test.js +66 -0
- package/dist/test/TableManagerCreateOrder.test.js.map +1 -0
- package/dist/test/reusable/SourceRecordSyncTests.d.ts.map +1 -1
- package/dist/test/reusable/SourceRecordSyncTests.js +3 -5
- package/dist/test/reusable/SourceRecordSyncTests.js.map +1 -1
- package/dist/test/reusable/TableManagerTests.d.ts.map +1 -1
- package/dist/test/reusable/TableManagerTests.js +180 -0
- package/dist/test/reusable/TableManagerTests.js.map +1 -1
- package/generated/index.ts +20 -19
- package/generated/test/index.ts +54 -53
- package/index.ts +3 -4
- package/package.json +4 -4
- package/src/Db.ts +11 -2
- package/src/MigrationRunner.ts +2 -2
- package/src/Table.ts +16 -1
- package/src/auth/TableAuth.ts +14 -0
- package/src/auth/TableServiceAuth.ts +6 -1
- package/src/schema/SchemaOperations.ts +4 -3
- package/src/schema/TableManager.ts +84 -26
- package/src/services/TransactionRunnerService.ts +21 -1
- package/src/source/SourceRecord.ts +2 -2
- package/src/source/{SourceRecordLoader.ts → SourceRecordSyncRunner.ts} +31 -13
- package/src/tables/MigrationTable.ts +12 -4
- package/src/transaction/Transaction.ts +11 -2
- package/src/transaction/TransactionRunner.ts +174 -3
- package/test/DurableTable.test.ts +156 -0
- package/test/MigrationAuth.test.ts +7 -5
- package/test/SchemaReconcileLines.test.ts +127 -0
- package/test/SourceRecordLoaderQualifiedName.test.ts +63 -0
- package/test/{SourceRecordLoader.test.ts → SourceRecordSyncRunner.test.ts} +75 -8
- package/test/TableManagerCreateOrder.test.ts +78 -0
- package/test/reusable/SourceRecordSyncTests.ts +3 -5
- package/test/reusable/TableManagerTests.ts +95 -0
- package/dist/src/source/SourceRecordLoader.d.ts.map +0 -1
- package/dist/src/source/SourceRecordLoader.js.map +0 -1
- package/dist/test/SourceRecordLoader.test.d.ts +0 -2
- package/dist/test/SourceRecordLoader.test.d.ts.map +0 -1
- package/dist/test/SourceRecordLoader.test.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SourceRecordSyncRunner } from '../src/source/SourceRecordSyncRunner';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Covers the two helpers that drive
|
|
4
|
+
* Covers the two helpers that drive SourceRecordSyncRunner's change-detection:
|
|
5
5
|
* - `canonicalStringify`: deterministic, key-order-independent JSON
|
|
6
6
|
* - `findMismatchPath`: per-field drift detection that uses canonical stringify
|
|
7
7
|
* so object-valued columns (e.g. `JsonColumn`) are compared strictly while
|
|
8
8
|
* remaining immune to storage-side key reordering (Spanner alphabetizes JSON
|
|
9
9
|
* object keys on write).
|
|
10
10
|
*
|
|
11
|
-
* Both are private methods on `
|
|
11
|
+
* Both are private methods on `SourceRecordSyncRunner`. Tests access them through
|
|
12
12
|
* the instance with a cast — cheaper than wiring full `hasChanges` fixtures
|
|
13
13
|
* (Table, RecordSerializer, Db) and keeps the public API surface of the class
|
|
14
14
|
* unchanged.
|
|
@@ -19,9 +19,9 @@ type LoaderInternals = {
|
|
|
19
19
|
findMismatchPath: (source: any, existing: any, path: string) => string | null;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
const internals = () => new
|
|
22
|
+
const internals = () => new SourceRecordSyncRunner() as unknown as LoaderInternals;
|
|
23
23
|
|
|
24
|
-
describe('
|
|
24
|
+
describe('SourceRecordSyncRunner.canonicalStringify', () => {
|
|
25
25
|
it('produces the same string for objects with different key orders', () => {
|
|
26
26
|
const loader = internals();
|
|
27
27
|
const a = { foo: 1, bar: 2, baz: 3 };
|
|
@@ -49,7 +49,7 @@ describe('SourceRecordLoader.canonicalStringify', () => {
|
|
|
49
49
|
});
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
describe('
|
|
52
|
+
describe('SourceRecordSyncRunner.findMismatchPath', () => {
|
|
53
53
|
describe('object comparison', () => {
|
|
54
54
|
it('returns null for identical objects', () => {
|
|
55
55
|
const loader = internals();
|
|
@@ -158,13 +158,13 @@ describe('SourceRecordLoader.findMismatchPath', () => {
|
|
|
158
158
|
* rewrites a row (bumping `updated`). The ownership stamps ride the declared record, so the
|
|
159
159
|
* comparison must know which of them mean "the definition changed" and which are bookkeeping.
|
|
160
160
|
*/
|
|
161
|
-
describe('
|
|
161
|
+
describe('SourceRecordSyncRunner.hasChanges — stamp hygiene on the migration ledger', () => {
|
|
162
162
|
type HasChangesInternals = { hasChanges: (table: any, source: any, existing: any) => Promise<boolean> };
|
|
163
163
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
164
164
|
const { MigrationTable } = require('../src/tables/MigrationTable');
|
|
165
165
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
166
166
|
const moment = require('moment');
|
|
167
|
-
const loader = () => new
|
|
167
|
+
const loader = () => new SourceRecordSyncRunner() as unknown as HasChangesInternals;
|
|
168
168
|
const table = new MigrationTable();
|
|
169
169
|
|
|
170
170
|
/** What a build declares for a migration (the run function rides along, as it does at boot). */
|
|
@@ -242,3 +242,70 @@ describe('getSourceRecordLoaders — declaration identity', () => {
|
|
|
242
242
|
});
|
|
243
243
|
});
|
|
244
244
|
});
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* The version a booting server stamps on the records its OWN package declares. The loader
|
|
248
|
+
* resolves each declaring package by name from the process cwd — cwd's node_modules chain — and
|
|
249
|
+
* the package cwd IS never sits in that chain, so the server's own records used to sync with no
|
|
250
|
+
* version (and between two builds sharing a database, the last to boot won). The fixture is a
|
|
251
|
+
* server package in its own folder with no `exports` field, booted from that folder.
|
|
252
|
+
*/
|
|
253
|
+
describe("SourceRecordSyncRunner.resolveSourceVersion — the booting package's own version", () => {
|
|
254
|
+
type VersionInternals = { resolveSourceVersion: (source: string) => string | undefined };
|
|
255
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
256
|
+
const fs = require('fs');
|
|
257
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
258
|
+
const os = require('os');
|
|
259
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
260
|
+
const path = require('path');
|
|
261
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
262
|
+
const { Logger } = require('@proteinjs/logger');
|
|
263
|
+
const resolveSourceVersion = (source: string) =>
|
|
264
|
+
(new SourceRecordSyncRunner() as unknown as VersionInternals).resolveSourceVersion(source);
|
|
265
|
+
const writePackage = (directory: string, packageJson: object) => {
|
|
266
|
+
fs.mkdirSync(directory, { recursive: true });
|
|
267
|
+
fs.writeFileSync(path.join(directory, 'package.json'), JSON.stringify(packageJson));
|
|
268
|
+
fs.writeFileSync(path.join(directory, 'index.js'), 'module.exports = {};\n');
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
let serverDirectory: string;
|
|
272
|
+
let bootDirectory: string;
|
|
273
|
+
|
|
274
|
+
beforeEach(() => {
|
|
275
|
+
serverDirectory = fs.mkdtempSync(path.join(os.tmpdir(), 'source-version-server-'));
|
|
276
|
+
writePackage(serverDirectory, { name: '@fixture-scope/booting-server', version: '4.5.6', main: 'index.js' });
|
|
277
|
+
writePackage(path.join(serverDirectory, 'node_modules', '@fixture-scope', 'declaring-dependency'), {
|
|
278
|
+
name: '@fixture-scope/declaring-dependency',
|
|
279
|
+
version: '7.8.9',
|
|
280
|
+
main: 'index.js',
|
|
281
|
+
});
|
|
282
|
+
bootDirectory = process.cwd();
|
|
283
|
+
process.chdir(serverDirectory);
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
afterEach(() => {
|
|
287
|
+
process.chdir(bootDirectory);
|
|
288
|
+
fs.rmSync(serverDirectory, { recursive: true, force: true });
|
|
289
|
+
jest.restoreAllMocks();
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
it('stamps the booting package with the version in its own package.json', () => {
|
|
293
|
+
const warn = jest.spyOn(Logger.prototype, 'warn');
|
|
294
|
+
|
|
295
|
+
expect(resolveSourceVersion('@fixture-scope/booting-server')).toBe('4.5.6');
|
|
296
|
+
expect(warn).not.toHaveBeenCalled();
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
it("resolves other packages from cwd's dependencies, and warns when neither road resolves", () => {
|
|
300
|
+
const warn = jest.spyOn(Logger.prototype, 'warn');
|
|
301
|
+
|
|
302
|
+
expect(resolveSourceVersion('@fixture-scope/declaring-dependency')).toBe('7.8.9');
|
|
303
|
+
expect(warn).not.toHaveBeenCalled();
|
|
304
|
+
|
|
305
|
+
expect(resolveSourceVersion('@fixture-scope/not-installed')).toBeUndefined();
|
|
306
|
+
expect(warn).toHaveBeenCalledTimes(1);
|
|
307
|
+
expect((warn.mock.calls[0][0] as { message: string }).message).toContain(
|
|
308
|
+
"Could not resolve a version for source package '@fixture-scope/not-installed'"
|
|
309
|
+
);
|
|
310
|
+
});
|
|
311
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// TableManager first: it loads the Table/Record/Columns module cycle from its settled entry point.
|
|
2
|
+
import { TableManager } from '../src/schema/TableManager';
|
|
3
|
+
import { Table } from '../src/Table';
|
|
4
|
+
import { StringColumn } from '../src/Columns';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The order `TableManager.loadTables` hands absent tables to `SchemaOperations.createTables`:
|
|
8
|
+
* each table after the tables its foreign keys reference (`ColumnOptions.references`), grouped
|
|
9
|
+
* by rank and kept in the given order within a rank. The emulator/database half of the proof
|
|
10
|
+
* (a real batch that fails in the enumerated order and lands in this one) lives in the reusable
|
|
11
|
+
* TableManager tests every driver runs.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
type CreateOrderInternals = { orderByReferences(tables: Table<any>[]): Table<any>[] };
|
|
15
|
+
|
|
16
|
+
const tableManager = () =>
|
|
17
|
+
new TableManager({} as any, {} as any, {} as any, {} as any) as unknown as CreateOrderInternals;
|
|
18
|
+
|
|
19
|
+
/** A table named `name` with one foreign-key column per entry in `references`. */
|
|
20
|
+
const table = (name: string, ...references: string[]): Table<any> => {
|
|
21
|
+
const columns: { [property: string]: StringColumn } = { id: new StringColumn('id') };
|
|
22
|
+
references.forEach((referencedTable, index) => {
|
|
23
|
+
columns[`ref${index}`] = new StringColumn(`ref_${index}`, { references: { table: referencedTable } });
|
|
24
|
+
});
|
|
25
|
+
return { name, columns, indexes: [] } as unknown as Table<any>;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const names = (tables: Table<any>[]) => tables.map((each) => each.name);
|
|
29
|
+
|
|
30
|
+
describe('TableManager — the order absent tables are created in', () => {
|
|
31
|
+
it('creates a referenced table before the table enumerated ahead of it that references it', () => {
|
|
32
|
+
expect(names(tableManager().orderByReferences([table('child', 'parent'), table('parent')]))).toEqual([
|
|
33
|
+
'parent',
|
|
34
|
+
'child',
|
|
35
|
+
]);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('groups by rank and keeps the given order within a rank, so the output is deterministic', () => {
|
|
39
|
+
const ordered = tableManager().orderByReferences([
|
|
40
|
+
table('comment', 'post', 'account'),
|
|
41
|
+
table('post', 'account'),
|
|
42
|
+
table('reaction', 'account'),
|
|
43
|
+
table('account'),
|
|
44
|
+
table('tag'),
|
|
45
|
+
]);
|
|
46
|
+
|
|
47
|
+
// rank 0: account, tag (given order) · rank 1: post, reaction (given order) · rank 2: comment
|
|
48
|
+
expect(names(ordered)).toEqual(['account', 'tag', 'post', 'reaction', 'comment']);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('allows a table to reference itself', () => {
|
|
52
|
+
expect(names(tableManager().orderByReferences([table('node', 'node'), table('leaf', 'node')]))).toEqual([
|
|
53
|
+
'node',
|
|
54
|
+
'leaf',
|
|
55
|
+
]);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('ignores a reference to a table outside the set (already created, or not registered)', () => {
|
|
59
|
+
expect(names(tableManager().orderByReferences([table('late', 'existing'), table('early')]))).toEqual([
|
|
60
|
+
'late',
|
|
61
|
+
'early',
|
|
62
|
+
]);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('refuses a reference cycle, naming the cycle and every table it blocks', () => {
|
|
66
|
+
const cyclic = () =>
|
|
67
|
+
tableManager().orderByReferences([
|
|
68
|
+
table('free'),
|
|
69
|
+
table('downstream', 'second'),
|
|
70
|
+
table('first', 'third'),
|
|
71
|
+
table('second', 'first'),
|
|
72
|
+
table('third', 'second'),
|
|
73
|
+
]);
|
|
74
|
+
|
|
75
|
+
expect(cyclic).toThrow('foreign keys form a cycle: second -> first -> third -> second');
|
|
76
|
+
expect(cyclic).toThrow('Tables it blocks: downstream, first, second, third');
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -13,9 +13,7 @@ import {
|
|
|
13
13
|
withSourceRecordColumns,
|
|
14
14
|
} from '@proteinjs/db';
|
|
15
15
|
import type { DefaultTransactionContextFactory } from '@proteinjs/db';
|
|
16
|
-
|
|
17
|
-
// interface exported from the package index, so it is not index-exported.
|
|
18
|
-
import { SourceRecordLoader } from '../../src/source/SourceRecordLoader';
|
|
16
|
+
import { SourceRecordSyncRunner } from '../../src/source/SourceRecordSyncRunner';
|
|
19
17
|
import { TableWatcherRunner } from '../../src/TableWatcherRunner';
|
|
20
18
|
import { DbTestEnvironment } from '../util/DbTestEnvironment';
|
|
21
19
|
import {
|
|
@@ -90,7 +88,7 @@ export const sourceRecordSyncTests = (
|
|
|
90
88
|
packageName: declaration.source,
|
|
91
89
|
object: { table: declaration.table, record: declaration.record },
|
|
92
90
|
}));
|
|
93
|
-
const loader = new
|
|
91
|
+
const loader = new SourceRecordSyncRunner();
|
|
94
92
|
(loader as unknown as LoaderInternals).resolveSourceVersion = (source) =>
|
|
95
93
|
Object.prototype.hasOwnProperty.call(versions, source) ? versions[source] : undefined;
|
|
96
94
|
return await loader.load();
|
|
@@ -860,7 +858,7 @@ export const sourceRecordSyncTests = (
|
|
|
860
858
|
});
|
|
861
859
|
|
|
862
860
|
test("the version resolver reads the declaring package's real package.json", async () => {
|
|
863
|
-
const internals = new
|
|
861
|
+
const internals = new SourceRecordSyncRunner() as unknown as LoaderInternals;
|
|
864
862
|
// A real dependency of this build resolves to its actual version (entry resolution +
|
|
865
863
|
// walk-up works for exports-mapped packages, where `<pkg>/package.json` is not requireable).
|
|
866
864
|
expect(internals.resolveSourceVersion('@proteinjs/db-query')).toMatch(/^\d+\.\d+\.\d+/);
|
|
@@ -10,7 +10,9 @@ import {
|
|
|
10
10
|
DbDriver,
|
|
11
11
|
Column,
|
|
12
12
|
Table,
|
|
13
|
+
withRecordColumns,
|
|
13
14
|
} from '@proteinjs/db';
|
|
15
|
+
import { SourceRepository } from '@proteinjs/reflection';
|
|
14
16
|
import { DbTestEnvironment } from '../util/DbTestEnvironment';
|
|
15
17
|
import {
|
|
16
18
|
ColumnTypesTable,
|
|
@@ -539,5 +541,98 @@ export const tableManagerTests = (
|
|
|
539
541
|
expect(JSON.stringify(indexes['db_test_user_active_name_index'])).toBe(JSON.stringify(['active', 'name']));
|
|
540
542
|
expect(JSON.stringify(indexes['db_test_user_active_email_index'])).toBeFalsy();
|
|
541
543
|
});
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* `loadTables` creates every absent registered table in one pass, each table's foreign keys
|
|
547
|
+
* declared inline on its CREATE. The registry's enumeration order says nothing about those
|
|
548
|
+
* references, so these fixtures are enumerated with each referencing table FIRST — the order
|
|
549
|
+
* that fails a fresh database unless the tables are ordered by their references first.
|
|
550
|
+
*/
|
|
551
|
+
describe('loadTables creates absent tables in reference order', () => {
|
|
552
|
+
const fixtures = createOrderFixtureTables();
|
|
553
|
+
|
|
554
|
+
beforeEach(async () => {
|
|
555
|
+
await dropFixtureTables(dropTable, fixtures);
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
afterEach(async () => {
|
|
559
|
+
await dropFixtureTables(dropTable, fixtures);
|
|
560
|
+
});
|
|
561
|
+
|
|
562
|
+
test('a table enumerated before the table its foreign key references is created after it', async () => {
|
|
563
|
+
await withEnumeratedTables([fixtures.child, fixtures.parent], () => tableManager.loadTables());
|
|
564
|
+
|
|
565
|
+
expect(await tableManager.tableExists(fixtures.parent)).toBe(true);
|
|
566
|
+
expect(await tableManager.tableExists(fixtures.child)).toBe(true);
|
|
567
|
+
const foreignKeys = await tableManager.schemaMetadata.getForeignKeys(fixtures.child);
|
|
568
|
+
expect(foreignKeys['parent_id']?.referencedTableName).toBe(fixtures.parent.name);
|
|
569
|
+
expect(foreignKeys['parent_id']?.referencedColumnName).toBe('id');
|
|
570
|
+
});
|
|
571
|
+
|
|
572
|
+
test('a reference cycle among absent tables is refused by name, and nothing is created', async () => {
|
|
573
|
+
const created = withEnumeratedTables([fixtures.cycleA, fixtures.cycleB], () => tableManager.loadTables());
|
|
574
|
+
|
|
575
|
+
await expect(created).rejects.toThrow(
|
|
576
|
+
`foreign keys form a cycle: ${fixtures.cycleA.name} -> ${fixtures.cycleB.name} -> ${fixtures.cycleA.name}`
|
|
577
|
+
);
|
|
578
|
+
expect(await tableManager.tableExists(fixtures.cycleA)).toBe(false);
|
|
579
|
+
expect(await tableManager.tableExists(fixtures.cycleB)).toBe(false);
|
|
580
|
+
});
|
|
581
|
+
});
|
|
582
|
+
};
|
|
583
|
+
};
|
|
584
|
+
|
|
585
|
+
/**
|
|
586
|
+
* Fixture tables for the reference-order tests. Anonymous classes on purpose: a named class
|
|
587
|
+
* extending `Table` in this package's test sources joins the reflection registry, and a
|
|
588
|
+
* registered reference cycle would be refused by every `loadTables` in the suites.
|
|
589
|
+
*/
|
|
590
|
+
const createOrderFixtureTables = () => {
|
|
591
|
+
const referencing = (tableName: string, referencedTable: string): Table<any> =>
|
|
592
|
+
new (class extends Table<any> {
|
|
593
|
+
name = tableName;
|
|
594
|
+
columns = withRecordColumns<any>({
|
|
595
|
+
label: new StringColumn('label'),
|
|
596
|
+
parentId: new StringColumn('parent_id', { references: { table: referencedTable } }),
|
|
597
|
+
});
|
|
598
|
+
})();
|
|
599
|
+
|
|
600
|
+
return {
|
|
601
|
+
parent: new (class extends Table<any> {
|
|
602
|
+
name = 'db_test_create_order_parent';
|
|
603
|
+
columns = withRecordColumns<any>({
|
|
604
|
+
label: new StringColumn('label'),
|
|
605
|
+
});
|
|
606
|
+
})() as Table<any>,
|
|
607
|
+
child: referencing('db_test_create_order_child', 'db_test_create_order_parent'),
|
|
608
|
+
cycleA: referencing('db_test_create_order_cycle_a', 'db_test_create_order_cycle_b'),
|
|
609
|
+
cycleB: referencing('db_test_create_order_cycle_b', 'db_test_create_order_cycle_a'),
|
|
542
610
|
};
|
|
543
611
|
};
|
|
612
|
+
|
|
613
|
+
/** Referencing tables before the tables they reference, so a foreign key never blocks a drop. */
|
|
614
|
+
const dropFixtureTables = async (
|
|
615
|
+
dropTable: (table: Table<any>) => Promise<void>,
|
|
616
|
+
fixtures: ReturnType<typeof createOrderFixtureTables>
|
|
617
|
+
) => {
|
|
618
|
+
for (const table of [fixtures.child, fixtures.parent, fixtures.cycleA, fixtures.cycleB]) {
|
|
619
|
+
await dropTable(table);
|
|
620
|
+
}
|
|
621
|
+
};
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* Run `load` with the reflection registry enumerating exactly `tables` as the registered tables,
|
|
625
|
+
* in that order — what a package declaring them in that order hands `TableManager.loadTables`.
|
|
626
|
+
*/
|
|
627
|
+
const withEnumeratedTables = async (tables: Table<any>[], load: () => Promise<void>) => {
|
|
628
|
+
const repository = SourceRepository.get();
|
|
629
|
+
const enumerate = repository.objects.bind(repository);
|
|
630
|
+
const objects = jest
|
|
631
|
+
.spyOn(repository, 'objects')
|
|
632
|
+
.mockImplementation(((type: string) => (type === '@proteinjs/db/Table' ? tables : enumerate(type))) as any);
|
|
633
|
+
try {
|
|
634
|
+
await load();
|
|
635
|
+
} finally {
|
|
636
|
+
objects.mockRestore();
|
|
637
|
+
}
|
|
638
|
+
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecordLoader.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAkBjC,gEAAgE;AAChE,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,4BAA4B,CAAA;CAAE,CAAC;AAE5F,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA+C;IAE7D,+FAA+F;IAC/F,OAAO,CAAC,cAAc,CAAyC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA0JpE;;;;;;;;;OASG;YACW,gBAAgB;IA2D9B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;YACW,kCAAkC;IA0BhD;;;;;;OAMG;YACW,YAAY;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA+CvB;;;;;;;;;;;;;;;;;;;OAmBG;YACW,UAAU;IAwBxB;;;OAGG;YACW,eAAe;IAmB7B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,mGAAmG;IACnG,OAAO,CAAC,aAAa;IAQrB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;IAapB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CA4DxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecordLoader.js","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecordLoader.test.d.ts","sourceRoot":"","sources":["../../test/SourceRecordLoader.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecordLoader.test.js","sourceRoot":"","sources":["../../test/SourceRecordLoader.test.ts"],"names":[],"mappings":"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"}
|