-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcqid.test.ts
More file actions
86 lines (74 loc) · 2.73 KB
/
cqid.test.ts
File metadata and controls
86 lines (74 loc) · 2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import test from 'ava';
import { NIL as NIL_UUID } from 'uuid';
import { createColumn } from '../schema/column.js';
import { addCQIDsColumns, cqIDColumn } from '../schema/meta.js';
import { Resource } from '../schema/resource.js';
import { createTable } from '../schema/table.js';
import { setCQId } from './cqid.js';
test('setCQId - should set to random value if deterministicCQId is false', (t): void => {
const resource = new Resource(
addCQIDsColumns(
createTable({
name: 'table1',
columns: [
createColumn({ name: 'pk1', primaryKey: true, unique: true, notNull: true }),
createColumn({ name: 'pk2', primaryKey: true, unique: true, notNull: true }),
createColumn({ name: 'pk3', primaryKey: true, unique: true, notNull: true }),
createColumn({ name: 'non_pk' }),
],
}),
),
null,
null,
);
setCQId(resource, false, () => NIL_UUID);
const cqId = resource.getColumnData(cqIDColumn.name);
t.is(cqId.valid, true);
t.is(cqId.toString(), NIL_UUID);
});
test('setCQId - should set to random value if deterministicCQId is true and table does not have non _cq_id PKs', (t): void => {
const resource = new Resource(
addCQIDsColumns(
createTable({
name: 'table1',
columns: [
createColumn({ name: 'pk1', primaryKey: false, unique: true, notNull: true }),
createColumn({ name: 'pk2', primaryKey: false, unique: true, notNull: true }),
createColumn({ name: 'pk3', primaryKey: false, unique: true, notNull: true }),
createColumn({ name: 'non_pk' }),
],
}),
),
null,
null,
);
setCQId(resource, true, () => NIL_UUID);
const cqId = resource.getColumnData(cqIDColumn.name);
t.is(cqId.valid, true);
t.is(cqId.toString(), NIL_UUID);
});
test('setCQId - should set to fixed value if deterministicCQId is true and table has non _cq_id PKs', (t): void => {
const resource = new Resource(
addCQIDsColumns(
createTable({
name: 'table1',
columns: [
createColumn({ name: 'pk1', primaryKey: true, unique: true, notNull: true }),
createColumn({ name: 'pk2', primaryKey: true, unique: true, notNull: true }),
createColumn({ name: 'pk3', primaryKey: true, unique: true, notNull: true }),
createColumn({ name: 'non_pk' }),
],
}),
),
null,
null,
);
resource.setColumData('pk1', 'pk1-value');
resource.setColumData('pk2', 'pk2-value');
resource.setColumData('pk3', 'pk3-value');
resource.setColumData('non_pk', 'non-pk-value');
setCQId(resource, true);
const cqId = resource.getColumnData(cqIDColumn.name);
t.is(cqId.valid, true);
t.is(cqId.toString(), '415bd5dd-9bac-5806-b9d1-c53f17d37455');
});