@saltcorn/data 1.6.0-beta.1 → 1.6.0-beta.2

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.
Files changed (154) hide show
  1. package/dist/base-plugin/index.d.ts +12 -3
  2. package/dist/base-plugin/index.d.ts.map +1 -1
  3. package/dist/base-plugin/types.d.ts +19 -9
  4. package/dist/base-plugin/types.d.ts.map +1 -1
  5. package/dist/base-plugin/types.js +35 -9
  6. package/dist/base-plugin/types.js.map +1 -1
  7. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  8. package/dist/base-plugin/viewtemplates/edit.js +2 -8
  9. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  10. package/dist/db/state.d.ts.map +1 -1
  11. package/dist/db/state.js +15 -5
  12. package/dist/db/state.js.map +1 -1
  13. package/dist/mobile-mocks/node/fs/promises.d.ts +1 -0
  14. package/dist/mobile-mocks/node/fs/promises.d.ts.map +1 -1
  15. package/dist/mobile-mocks/node/fs/promises.js +4 -0
  16. package/dist/mobile-mocks/node/fs/promises.js.map +1 -1
  17. package/dist/mobile-mocks/node/fs.d.ts +2 -0
  18. package/dist/mobile-mocks/node/fs.d.ts.map +1 -1
  19. package/dist/mobile-mocks/node/fs.js +36 -0
  20. package/dist/mobile-mocks/node/fs.js.map +1 -1
  21. package/dist/models/index.d.ts.map +1 -1
  22. package/dist/models/scheduler.d.ts.map +1 -1
  23. package/dist/models/scheduler.js +15 -5
  24. package/dist/models/scheduler.js.map +1 -1
  25. package/dist/models/table.js +1 -1
  26. package/dist/models/table.js.map +1 -1
  27. package/dist/standard-menu.d.ts.map +1 -1
  28. package/dist/standard-menu.js +19 -0
  29. package/dist/standard-menu.js.map +1 -1
  30. package/dist/tests/actions.test.d.ts +2 -0
  31. package/dist/tests/actions.test.d.ts.map +1 -0
  32. package/dist/tests/actions.test.js +936 -0
  33. package/dist/tests/actions.test.js.map +1 -0
  34. package/dist/tests/auth.test.d.ts +2 -0
  35. package/dist/tests/auth.test.d.ts.map +1 -0
  36. package/dist/tests/auth.test.js +824 -0
  37. package/dist/tests/auth.test.js.map +1 -0
  38. package/dist/tests/auxtest.test.d.ts +2 -0
  39. package/dist/tests/auxtest.test.d.ts.map +1 -0
  40. package/dist/tests/auxtest.test.js +562 -0
  41. package/dist/tests/auxtest.test.js.map +1 -0
  42. package/dist/tests/base.test.d.ts +2 -0
  43. package/dist/tests/base.test.d.ts.map +1 -0
  44. package/dist/tests/base.test.js +30 -0
  45. package/dist/tests/base.test.js.map +1 -0
  46. package/dist/tests/calc.test.d.ts +2 -0
  47. package/dist/tests/calc.test.d.ts.map +1 -0
  48. package/dist/tests/calc.test.js +1081 -0
  49. package/dist/tests/calc.test.js.map +1 -0
  50. package/dist/tests/composite_pk.test.d.ts +2 -0
  51. package/dist/tests/composite_pk.test.d.ts.map +1 -0
  52. package/dist/tests/composite_pk.test.js +98 -0
  53. package/dist/tests/composite_pk.test.js.map +1 -0
  54. package/dist/tests/config.test.d.ts +2 -0
  55. package/dist/tests/config.test.d.ts.map +1 -0
  56. package/dist/tests/config.test.js +86 -0
  57. package/dist/tests/config.test.js.map +1 -0
  58. package/dist/tests/db.test.d.ts +2 -0
  59. package/dist/tests/db.test.d.ts.map +1 -0
  60. package/dist/tests/db.test.js +178 -0
  61. package/dist/tests/db.test.js.map +1 -0
  62. package/dist/tests/discover.test.d.ts +2 -0
  63. package/dist/tests/discover.test.d.ts.map +1 -0
  64. package/dist/tests/discover.test.js +245 -0
  65. package/dist/tests/discover.test.js.map +1 -0
  66. package/dist/tests/edit.test.d.ts +2 -0
  67. package/dist/tests/edit.test.d.ts.map +1 -0
  68. package/dist/tests/edit.test.js +1161 -0
  69. package/dist/tests/edit.test.js.map +1 -0
  70. package/dist/tests/email.test.d.ts +2 -0
  71. package/dist/tests/email.test.d.ts.map +1 -0
  72. package/dist/tests/email.test.js +255 -0
  73. package/dist/tests/email.test.js.map +1 -0
  74. package/dist/tests/exact_views.test.d.ts +2 -0
  75. package/dist/tests/exact_views.test.d.ts.map +1 -0
  76. package/dist/tests/exact_views.test.js +1363 -0
  77. package/dist/tests/exact_views.test.js.map +1 -0
  78. package/dist/tests/field.test.d.ts +2 -0
  79. package/dist/tests/field.test.d.ts.map +1 -0
  80. package/dist/tests/field.test.js +588 -0
  81. package/dist/tests/field.test.js.map +1 -0
  82. package/dist/tests/fieldviews.test.d.ts +2 -0
  83. package/dist/tests/fieldviews.test.d.ts.map +1 -0
  84. package/dist/tests/fieldviews.test.js +74 -0
  85. package/dist/tests/fieldviews.test.js.map +1 -0
  86. package/dist/tests/file.test.d.ts +2 -0
  87. package/dist/tests/file.test.d.ts.map +1 -0
  88. package/dist/tests/file.test.js +148 -0
  89. package/dist/tests/file.test.js.map +1 -0
  90. package/dist/tests/filter.test.d.ts +2 -0
  91. package/dist/tests/filter.test.d.ts.map +1 -0
  92. package/dist/tests/filter.test.js +496 -0
  93. package/dist/tests/filter.test.js.map +1 -0
  94. package/dist/tests/form.test.d.ts +2 -0
  95. package/dist/tests/form.test.d.ts.map +1 -0
  96. package/dist/tests/form.test.js +264 -0
  97. package/dist/tests/form.test.js.map +1 -0
  98. package/dist/tests/list.test.d.ts +2 -0
  99. package/dist/tests/list.test.d.ts.map +1 -0
  100. package/dist/tests/list.test.js +1037 -0
  101. package/dist/tests/list.test.js.map +1 -0
  102. package/dist/tests/models.test.d.ts +2 -0
  103. package/dist/tests/models.test.d.ts.map +1 -0
  104. package/dist/tests/models.test.js +417 -0
  105. package/dist/tests/models.test.js.map +1 -0
  106. package/dist/tests/page.test.d.ts +2 -0
  107. package/dist/tests/page.test.d.ts.map +1 -0
  108. package/dist/tests/page.test.js +26 -0
  109. package/dist/tests/page.test.js.map +1 -0
  110. package/dist/tests/page_group.test.d.ts +2 -0
  111. package/dist/tests/page_group.test.d.ts.map +1 -0
  112. package/dist/tests/page_group.test.js +51 -0
  113. package/dist/tests/page_group.test.js.map +1 -0
  114. package/dist/tests/plugin.test.d.ts +2 -0
  115. package/dist/tests/plugin.test.d.ts.map +1 -0
  116. package/dist/tests/plugin.test.js +60 -0
  117. package/dist/tests/plugin.test.js.map +1 -0
  118. package/dist/tests/show.test.d.ts +2 -0
  119. package/dist/tests/show.test.d.ts.map +1 -0
  120. package/dist/tests/show.test.js +561 -0
  121. package/dist/tests/show.test.js.map +1 -0
  122. package/dist/tests/state.test.d.ts +2 -0
  123. package/dist/tests/state.test.d.ts.map +1 -0
  124. package/dist/tests/state.test.js +82 -0
  125. package/dist/tests/state.test.js.map +1 -0
  126. package/dist/tests/table.test.d.ts +2 -0
  127. package/dist/tests/table.test.d.ts.map +1 -0
  128. package/dist/tests/table.test.js +2717 -0
  129. package/dist/tests/table.test.js.map +1 -0
  130. package/dist/tests/table_history.test.d.ts +2 -0
  131. package/dist/tests/table_history.test.d.ts.map +1 -0
  132. package/dist/tests/table_history.test.js +413 -0
  133. package/dist/tests/table_history.test.js.map +1 -0
  134. package/dist/tests/tag.test.d.ts +2 -0
  135. package/dist/tests/tag.test.d.ts.map +1 -0
  136. package/dist/tests/tag.test.js +97 -0
  137. package/dist/tests/tag.test.js.map +1 -0
  138. package/dist/tests/user.test.d.ts +2 -0
  139. package/dist/tests/user.test.d.ts.map +1 -0
  140. package/dist/tests/user.test.js +441 -0
  141. package/dist/tests/user.test.js.map +1 -0
  142. package/dist/tests/view.test.d.ts +2 -0
  143. package/dist/tests/view.test.d.ts.map +1 -0
  144. package/dist/tests/view.test.js +699 -0
  145. package/dist/tests/view.test.js.map +1 -0
  146. package/dist/tests/workflow.test.d.ts +2 -0
  147. package/dist/tests/workflow.test.d.ts.map +1 -0
  148. package/dist/tests/workflow.test.js +303 -0
  149. package/dist/tests/workflow.test.js.map +1 -0
  150. package/dist/tests/workflow_run.test.d.ts +2 -0
  151. package/dist/tests/workflow_run.test.d.ts.map +1 -0
  152. package/dist/tests/workflow_run.test.js +922 -0
  153. package/dist/tests/workflow_run.test.js.map +1 -0
  154. package/package.json +8 -8
@@ -0,0 +1,413 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const table_1 = __importDefault(require("../models/table"));
7
+ const field_1 = __importDefault(require("../models/field"));
8
+ const db_1 = __importDefault(require("../db"));
9
+ const { getState } = require("../db/state");
10
+ getState().registerPlugin("base", require("../base-plugin"));
11
+ const mocks_1 = __importDefault(require("./mocks"));
12
+ const { rick_file, plugin_with_routes, mockReqRes, createDefaultView } = mocks_1.default;
13
+ const assertions_1 = require("./assertions");
14
+ const globals_1 = require("@jest/globals");
15
+ const expression_1 = __importDefault(require("../models/expression"));
16
+ const utils_1 = __importDefault(require("../utils"));
17
+ const user_1 = __importDefault(require("../models/user"));
18
+ const { freeVariables } = expression_1.default;
19
+ (0, globals_1.afterAll)(db_1.default.close);
20
+ (0, globals_1.beforeAll)(async () => {
21
+ await require("../db/reset_schema")();
22
+ await require("../db/fixtures")();
23
+ });
24
+ jest.setTimeout(30000);
25
+ (0, globals_1.describe)("Table history", () => {
26
+ (0, globals_1.it)("should enable versioning", async () => {
27
+ const table = table_1.default.findOne({ name: "patients" });
28
+ (0, assertions_1.assertIsSet)(table);
29
+ table.versioned = true;
30
+ await table.update(table);
31
+ const vtables = await table_1.default.find({ versioned: true });
32
+ (0, globals_1.expect)(vtables.map((t) => t.name)).toContain("patients");
33
+ });
34
+ (0, globals_1.it)("should save version on insert", async () => {
35
+ const table = table_1.default.findOne({ name: "patients" });
36
+ (0, assertions_1.assertIsSet)(table);
37
+ await table.insertRow({ name: "Bunny foo-foo", favbook: 1 });
38
+ const bunnyFooFoo = await table.getRow({ name: "Bunny foo-foo" });
39
+ (0, assertions_1.assertIsSet)(bunnyFooFoo);
40
+ const history1 = await table.get_history(bunnyFooFoo.id);
41
+ (0, globals_1.expect)(history1.length).toBe(1);
42
+ (0, globals_1.expect)(history1[0].id).toBe(bunnyFooFoo.id);
43
+ (0, globals_1.expect)(history1[0]._version).toBe(1);
44
+ (0, globals_1.expect)(history1[0].name).toBe("Bunny foo-foo");
45
+ });
46
+ (0, globals_1.it)("should save version on update", async () => {
47
+ const table = table_1.default.findOne({ name: "patients" });
48
+ (0, assertions_1.assertIsSet)(table);
49
+ const bunnyFooFoo = await table.getRow({ name: "Bunny foo-foo" });
50
+ (0, assertions_1.assertIsSet)(bunnyFooFoo);
51
+ await table.updateRow({ name: "Goon" }, bunnyFooFoo.id);
52
+ const history2 = await table.get_history(bunnyFooFoo.id);
53
+ (0, globals_1.expect)(history2.length).toBe(2);
54
+ (0, globals_1.expect)(history2[0].id).toBe(bunnyFooFoo.id);
55
+ (0, globals_1.expect)(history2[0]._version).toBe(1);
56
+ (0, globals_1.expect)(history2[0].name).toBe("Bunny foo-foo");
57
+ (0, globals_1.expect)(history2[0].favbook).toBe(1);
58
+ (0, globals_1.expect)(history2[1].id).toBe(bunnyFooFoo.id);
59
+ (0, globals_1.expect)(history2[1]._version).toBe(2);
60
+ (0, globals_1.expect)(history2[1].name).toBe("Goon");
61
+ (0, globals_1.expect)(history2[1].favbook).toBe(1);
62
+ const goon = await table.getRow({ id: bunnyFooFoo.id });
63
+ (0, assertions_1.assertIsSet)(goon);
64
+ (0, globals_1.expect)(goon.name).toBe("Goon");
65
+ (0, globals_1.expect)(goon.favbook).toBe(1);
66
+ });
67
+ (0, globals_1.it)("create field on version table", async () => {
68
+ const table = table_1.default.findOne({ name: "patients" });
69
+ const fc = await field_1.default.create({
70
+ table: table,
71
+ name: "Height19",
72
+ label: "height19",
73
+ type: "Integer",
74
+ required: true,
75
+ attributes: { default: 6 },
76
+ });
77
+ await fc.delete();
78
+ });
79
+ (0, globals_1.it)("should disable versioning", async () => {
80
+ const table = table_1.default.findOne({ name: "patients" });
81
+ (0, assertions_1.assertIsSet)(table);
82
+ table.getFields();
83
+ await table.update({ versioned: false });
84
+ });
85
+ (0, globals_1.it)("should rename", async () => {
86
+ const table = await table_1.default.create("notsurename");
87
+ await field_1.default.create({
88
+ table,
89
+ label: "tall",
90
+ type: "Bool",
91
+ required: true,
92
+ });
93
+ const table1 = await table_1.default.create("refsunsure");
94
+ await field_1.default.create({
95
+ table: table1,
96
+ label: "also_tall",
97
+ type: "Bool",
98
+ required: true,
99
+ });
100
+ await field_1.default.create({
101
+ table: table1,
102
+ label: "theref",
103
+ type: "Key to notsurename",
104
+ required: true,
105
+ });
106
+ const id = await table.insertRow({ tall: false });
107
+ await table1.insertRow({ also_tall: true, theref: id });
108
+ const joinFields = { reftall: { ref: "theref", target: "tall" } };
109
+ const rows = await table1.getJoinedRows({ joinFields });
110
+ (0, globals_1.expect)(rows[0].theref).toBe(id);
111
+ (0, globals_1.expect)(!!rows[0].reftall).toBe(false); //for sqlite
112
+ if (!db_1.default.isSQLite) {
113
+ await table.rename("isthisbetter");
114
+ const table3 = table_1.default.findOne({ name: "refsunsure" });
115
+ (0, assertions_1.assertIsSet)(table3);
116
+ const rows1 = await table3.getJoinedRows({ joinFields });
117
+ (0, globals_1.expect)(rows1[0].theref).toBe(id);
118
+ (0, globals_1.expect)(rows1[0].reftall).toBe(false);
119
+ const table2 = table_1.default.findOne({ name: "isthisbetter" });
120
+ (0, assertions_1.assertIsSet)(table2);
121
+ (0, globals_1.expect)(!!table2).toBe(true);
122
+ table2.versioned = true;
123
+ await table2.update(table2);
124
+ await table2.rename("thisisthebestname");
125
+ }
126
+ });
127
+ });
128
+ (0, globals_1.describe)("undo/redo", () => {
129
+ (0, globals_1.it)("should create table", async () => {
130
+ const tc = await table_1.default.create("counttable23");
131
+ await field_1.default.create({
132
+ table: tc,
133
+ label: "Number",
134
+ type: "Integer",
135
+ required: true,
136
+ });
137
+ await tc.update({ versioned: true });
138
+ await tc.insertRow({ id: 1, number: 101 });
139
+ await tc.updateRow({ number: 102 }, 1);
140
+ await tc.updateRow({ number: 103 }, 1);
141
+ await tc.updateRow({ number: 104 }, 1);
142
+ await tc.updateRow({ number: 105 }, 1);
143
+ });
144
+ (0, globals_1.it)("should undo", async () => {
145
+ const tc = table_1.default.findOne({ name: "counttable23" });
146
+ (0, assertions_1.assertIsSet)(tc);
147
+ //db.set_sql_logging(true);
148
+ await tc.undo_row_changes(1);
149
+ const r1 = await tc.getRow({ id: 1 });
150
+ (0, globals_1.expect)(r1?.number).toBe(104);
151
+ //console.log(await tc.get_history(1));
152
+ });
153
+ (0, globals_1.it)("should undo again", async () => {
154
+ const tc = table_1.default.findOne({ name: "counttable23" });
155
+ (0, assertions_1.assertIsSet)(tc);
156
+ //db.set_sql_logging(true);
157
+ await tc.undo_row_changes(1);
158
+ const r2 = await tc.getRow({ id: 1 });
159
+ (0, globals_1.expect)(r2?.number).toBe(103);
160
+ });
161
+ (0, globals_1.it)("should redo", async () => {
162
+ const tc = table_1.default.findOne({ name: "counttable23" });
163
+ (0, assertions_1.assertIsSet)(tc);
164
+ await tc.redo_row_changes(1);
165
+ const r2 = await tc.getRow({ id: 1 });
166
+ (0, globals_1.expect)(r2?.number).toBe(104);
167
+ });
168
+ (0, globals_1.it)("should redo again", async () => {
169
+ const tc = table_1.default.findOne({ name: "counttable23" });
170
+ (0, assertions_1.assertIsSet)(tc);
171
+ await tc.redo_row_changes(1);
172
+ const r2 = await tc.getRow({ id: 1 });
173
+ (0, globals_1.expect)(r2?.number).toBe(105);
174
+ });
175
+ (0, globals_1.it)("should undo after redo", async () => {
176
+ const tc = table_1.default.findOne({ name: "counttable23" });
177
+ (0, assertions_1.assertIsSet)(tc);
178
+ await tc.undo_row_changes(1);
179
+ const r2 = await tc.getRow({ id: 1 });
180
+ (0, globals_1.expect)(r2?.number).toBe(104);
181
+ });
182
+ });
183
+ (0, globals_1.describe)("history compression", () => {
184
+ (0, globals_1.it)("should compress by time", async () => {
185
+ if (!db_1.default.isSQLite) {
186
+ const tc = await table_1.default.create("counttable32");
187
+ await field_1.default.create({
188
+ table: tc,
189
+ label: "Number",
190
+ type: "Integer",
191
+ required: true,
192
+ });
193
+ await tc.update({ versioned: true });
194
+ await tc.insertRow({ id: 1, number: 101 });
195
+ await tc.insertRow({ id: 2, number: 201 });
196
+ await tc.updateRow({ number: 102 }, 1);
197
+ await tc.updateRow({ number: 103 }, 1);
198
+ await tc.updateRow({ number: 202 }, 2);
199
+ await utils_1.default.sleep(600);
200
+ await tc.updateRow({ number: 104 }, 1);
201
+ await tc.updateRow({ number: 205 }, 2);
202
+ const h1 = await tc.get_history(1);
203
+ (0, globals_1.expect)(h1.length).toBe(4);
204
+ (0, globals_1.expect)(h1.map((h) => h.number)).toContain(101);
205
+ (0, globals_1.expect)(h1.map((h) => h.number)).toContain(102);
206
+ const h2 = await tc.get_history(2);
207
+ (0, globals_1.expect)(h2.length).toBe(3);
208
+ (0, globals_1.expect)(h2.map((h) => h.number)).toContain(202);
209
+ await tc.compress_history(0.2);
210
+ const h1c = await tc.get_history(1);
211
+ (0, globals_1.expect)(h1c.length).toBe(2);
212
+ (0, globals_1.expect)(h1c.map((h) => h.number)).toContain(103);
213
+ (0, globals_1.expect)(h1c.map((h) => h.number)).toContain(104);
214
+ const h2c = await tc.get_history(2);
215
+ (0, globals_1.expect)(h2c.length).toBe(2);
216
+ (0, globals_1.expect)(h2c.map((h) => h.number)).toContain(202);
217
+ (0, globals_1.expect)(h2c.map((h) => h.number)).toContain(205);
218
+ }
219
+ });
220
+ (0, globals_1.it)("should delete unchanged", async () => {
221
+ if (!db_1.default.isSQLite) {
222
+ const tc = await table_1.default.create("counttable33");
223
+ await field_1.default.create({
224
+ table: tc,
225
+ label: "Number",
226
+ type: "Integer",
227
+ required: true,
228
+ });
229
+ await tc.update({ versioned: true });
230
+ await tc.insertRow({ id: 1, number: 101 });
231
+ await tc.insertRow({ id: 2, number: 201 });
232
+ await tc.updateRow({ number: 101 }, 1);
233
+ await tc.updateRow({ number: 101 }, 1);
234
+ await tc.updateRow({ number: 202 }, 2);
235
+ await tc.updateRow({ number: 102 }, 1);
236
+ await tc.updateRow({ number: 103 }, 1);
237
+ const h1 = await tc.get_history(1);
238
+ (0, globals_1.expect)(h1.length).toBe(5);
239
+ (0, globals_1.expect)(h1.map((h) => h.number)).toContain(101);
240
+ (0, globals_1.expect)(h1.map((h) => h.number)).toContain(102);
241
+ const h2 = await tc.get_history(2);
242
+ (0, globals_1.expect)(h2.length).toBe(2);
243
+ (0, globals_1.expect)(h2.map((h) => h.number)).toContain(202);
244
+ await tc.compress_history({ delete_unchanged: true });
245
+ db_1.default.set_sql_logging(false);
246
+ const h1c = await tc.get_history(1);
247
+ (0, globals_1.expect)(h1c.length).toBe(3);
248
+ (0, globals_1.expect)(h1c.map((h) => h.number)).toContain(101);
249
+ (0, globals_1.expect)(h1c.filter((h) => h.number === 101).length).toBe(1);
250
+ (0, globals_1.expect)(h1c.map((h) => h.number)).toContain(102);
251
+ (0, globals_1.expect)(h1c.map((h) => h.number)).toContain(103);
252
+ const h2c = await tc.get_history(2);
253
+ (0, globals_1.expect)(h2c.length).toBe(2);
254
+ (0, globals_1.expect)(h2c.map((h) => h.number)).toContain(201);
255
+ (0, globals_1.expect)(h2c.map((h) => h.number)).toContain(202);
256
+ }
257
+ });
258
+ });
259
+ (0, globals_1.describe)("unique history clash", () => {
260
+ (0, globals_1.it)("should create table", async () => {
261
+ const table = await table_1.default.create("unihistory");
262
+ await field_1.default.create({
263
+ table,
264
+ label: "Name",
265
+ type: "String",
266
+ is_unique: true,
267
+ });
268
+ await field_1.default.create({
269
+ table,
270
+ label: "age",
271
+ type: "Integer",
272
+ });
273
+ await field_1.default.create({
274
+ table,
275
+ label: "agep1",
276
+ type: "Integer",
277
+ calculated: true,
278
+ stored: true,
279
+ expression: "age ? age+1:null",
280
+ });
281
+ await field_1.default.create({
282
+ table,
283
+ label: "agep1ns",
284
+ type: "Integer",
285
+ calculated: true,
286
+ stored: false,
287
+ expression: "age ? age+1:null",
288
+ });
289
+ });
290
+ (0, globals_1.it)("should enable versioning", async () => {
291
+ const table = table_1.default.findOne({ name: "unihistory" });
292
+ (0, assertions_1.assertIsSet)(table);
293
+ table.versioned = true;
294
+ await table.update(table);
295
+ });
296
+ (0, globals_1.it)("should not error on history with unique", async () => {
297
+ const table = table_1.default.findOne({ name: "unihistory" });
298
+ (0, assertions_1.assertIsSet)(table);
299
+ await table.insertRow({ name: "Bartimaeus", age: 2500 });
300
+ const row = await table.getRow({ name: "Bartimaeus" });
301
+ (0, globals_1.expect)(row.name).toBe("Bartimaeus");
302
+ await table.deleteRows({ id: row.id });
303
+ await table.insertRow({ name: "Bartimaeus" });
304
+ const row1 = await table.getRow({ name: "Bartimaeus" });
305
+ (0, globals_1.expect)(row1.name).toBe("Bartimaeus");
306
+ });
307
+ (0, globals_1.it)("should duplicate row manually", async () => {
308
+ const table = table_1.default.findOne({ name: "unihistory" });
309
+ (0, assertions_1.assertIsSet)(table);
310
+ const row = await table.getRow({ name: "Bartimaeus" });
311
+ (0, assertions_1.assertIsSet)(row);
312
+ const history0 = await table.get_history(row.id);
313
+ await table.updateRow({ age: 2501 }, row.id);
314
+ const row1 = await table.getRow({ name: "Bartimaeus" });
315
+ (0, globals_1.expect)(row1.name).toBe("Bartimaeus");
316
+ (0, globals_1.expect)(row1.age).toBe(2501);
317
+ const history1 = await table.get_history(row1.id);
318
+ (0, globals_1.expect)(history0.length + 1).toBe(history1.length);
319
+ });
320
+ (0, globals_1.it)("should not clash unique with history", async () => {
321
+ const table = table_1.default.findOne({ name: "unihistory" });
322
+ (0, assertions_1.assertIsSet)(table);
323
+ const row = await table.getRow({ name: "Bartimaeus" });
324
+ (0, assertions_1.assertIsSet)(row);
325
+ await table.deleteRows({});
326
+ await table.insertRow({ name: "Bartimaeus", age: 2499 });
327
+ });
328
+ (0, globals_1.it)("should disable and enable history", async () => {
329
+ const table = table_1.default.findOne({ name: "unihistory" });
330
+ (0, assertions_1.assertIsSet)(table);
331
+ table.versioned = false;
332
+ await table.update(table);
333
+ table.versioned = true;
334
+ await table.update(table);
335
+ const row = await table.getRow({ name: "Bartimaeus" });
336
+ (0, assertions_1.assertIsSet)(row);
337
+ await table.updateRow({ age: 2502 }, row.id);
338
+ const row1 = await table.getRow({ name: "Bartimaeus" });
339
+ (0, globals_1.expect)(row1.name).toBe("Bartimaeus");
340
+ (0, globals_1.expect)(row1.age).toBe(2502);
341
+ await table.deleteRows({});
342
+ await table.insertRow({ name: "Bartimaeus", age: 2498 });
343
+ });
344
+ });
345
+ (0, globals_1.describe)("Table history with UUID pks", () => {
346
+ if (!db_1.default.isSQLite) {
347
+ (0, globals_1.it)("should select uuid", async () => {
348
+ await db_1.default.query('create extension if not exists "uuid-ossp";');
349
+ const { rows } = await db_1.default.query("select uuid_generate_v4();");
350
+ (0, globals_1.expect)(rows.length).toBe(1);
351
+ (0, globals_1.expect)(typeof rows[0].uuid_generate_v4).toBe("string");
352
+ });
353
+ (0, globals_1.it)("should create table", async () => {
354
+ getState().registerPlugin("mock_plugin", plugin_with_routes());
355
+ const table = await table_1.default.create("TableUUID1");
356
+ const [pk] = table.getFields();
357
+ await pk.update({ type: "UUID" });
358
+ // @ts-ignore
359
+ (0, globals_1.expect)(pk.type.name).toBe("UUID");
360
+ table.versioned = true;
361
+ await table.update(table);
362
+ });
363
+ (0, globals_1.it)("should insert stuff in table", async () => {
364
+ const table1 = table_1.default.findOne({ name: "TableUUID1" });
365
+ (0, assertions_1.assertIsSet)(table1);
366
+ const flds1 = await table1.getFields();
367
+ // @ts-ignore
368
+ (0, globals_1.expect)(flds1[0].type.name).toBe("UUID");
369
+ const name = await field_1.default.create({
370
+ table: table1,
371
+ name: "name",
372
+ type: "String",
373
+ });
374
+ await table1.insertRow({ name: "Sam" });
375
+ const rows = await table1.getRows();
376
+ (0, globals_1.expect)(rows.length).toBe(1);
377
+ (0, globals_1.expect)(typeof rows[0].id).toBe("string");
378
+ (0, globals_1.expect)(rows[0].id.length > 10).toBe(true);
379
+ (0, globals_1.expect)(rows[0].name).toBe("Sam");
380
+ const history1 = await table1.get_history(rows[0].id);
381
+ (0, globals_1.expect)(history1.length).toBe(1);
382
+ await table1.updateRow({ name: "Jim" }, rows[0].id);
383
+ const rows1 = await table1.getJoinedRows();
384
+ (0, globals_1.expect)(rows1.length).toBe(1);
385
+ (0, globals_1.expect)(typeof rows1[0].id).toBe("string");
386
+ (0, globals_1.expect)(rows1[0].id).toBe(rows[0].id);
387
+ (0, globals_1.expect)(rows1[0].name).toBe("Jim");
388
+ const row = await table1.getRow({ id: rows[0].id });
389
+ (0, assertions_1.assertIsSet)(row);
390
+ (0, globals_1.expect)(row.name).toBe("Jim");
391
+ const history2 = await table1.get_history(rows[0].id);
392
+ (0, globals_1.expect)(history2.length).toBe(2);
393
+ });
394
+ }
395
+ });
396
+ (0, globals_1.describe)("Users history", () => {
397
+ (0, globals_1.it)("should enable versioning", async () => {
398
+ const table = user_1.default.table;
399
+ (0, assertions_1.assertIsSet)(table);
400
+ table.versioned = true;
401
+ await table.update(table);
402
+ });
403
+ (0, globals_1.it)("should insert stuff in table", async () => {
404
+ const u = await user_1.default.findOne({ id: 3 });
405
+ (0, assertions_1.assertIsSet)(u);
406
+ await u.update({ email: "foo@bar.com" });
407
+ const u1 = await user_1.default.findOne({ id: 3 });
408
+ (0, assertions_1.assertIsSet)(u1);
409
+ (0, globals_1.expect)(u1.email).toBe("foo@bar.com");
410
+ await u1.update({ last_mobile_login: new Date() });
411
+ });
412
+ });
413
+ //# sourceMappingURL=table_history.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table_history.test.js","sourceRoot":"","sources":["../../tests/table_history.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tag.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.test.d.ts","sourceRoot":"","sources":["../../tests/tag.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const db_1 = __importDefault(require("../db"));
7
+ const { getState } = require("../db/state");
8
+ getState().registerPlugin("base", require("../base-plugin"));
9
+ const globals_1 = require("@jest/globals");
10
+ const tag_1 = __importDefault(require("../models/tag"));
11
+ const table_1 = __importDefault(require("../models/table"));
12
+ const view_1 = __importDefault(require("../models/view"));
13
+ const page_1 = __importDefault(require("../models/page"));
14
+ (0, globals_1.afterAll)(db_1.default.close);
15
+ (0, globals_1.beforeAll)(async () => {
16
+ await require("../db/reset_schema")();
17
+ await require("../db/fixtures")();
18
+ });
19
+ jest.setTimeout(30000);
20
+ (0, globals_1.describe)("Tag IO", () => {
21
+ let books, patients;
22
+ let authorlist, authorshow;
23
+ let pageA;
24
+ (0, globals_1.beforeAll)(async () => {
25
+ books = table_1.default.findOne({ name: "books" });
26
+ patients = table_1.default.findOne({ name: "patients" });
27
+ authorlist = view_1.default.findOne({ name: "authorlist" });
28
+ authorshow = view_1.default.findOne({ name: "authorshow" });
29
+ pageA = await page_1.default.findOne({ name: "a_page" });
30
+ });
31
+ const compare = (actual, expected) => {
32
+ if (!expected)
33
+ (0, globals_1.expect)(!actual).toBe(true);
34
+ else
35
+ (0, globals_1.expect)(actual).toBe(expected);
36
+ };
37
+ const compareExpected = (entries, expectedIds) => {
38
+ (0, globals_1.expect)(entries).toBeDefined();
39
+ (0, globals_1.expect)(entries.length).toBe(expectedIds.length);
40
+ for (let index = 0; index < entries.length; index++) {
41
+ compare(entries[index].table_id, expectedIds[index][0]);
42
+ compare(entries[index].view_id, expectedIds[index][1]);
43
+ compare(entries[index].page_id, expectedIds[index][2]);
44
+ compare(entries[index].trigger_id, expectedIds[index][3]);
45
+ }
46
+ };
47
+ const testCreate = async (tagName, entryIds, expectedIds) => {
48
+ const tc = await tag_1.default.create({
49
+ name: tagName,
50
+ entries: entryIds,
51
+ });
52
+ const entries = await tc.getEntries();
53
+ (0, globals_1.expect)(tc.entries).toBeDefined();
54
+ compareExpected(entries, expectedIds);
55
+ return tc.id;
56
+ };
57
+ const testAdd = async (tagName, entryIds, expectedIds) => {
58
+ const tc = await tag_1.default.create({ name: tagName });
59
+ let entries = await tc.getEntries();
60
+ (0, globals_1.expect)(tc.entries).toBeDefined();
61
+ (0, globals_1.expect)(entries).toBeDefined();
62
+ (0, globals_1.expect)(entries.length).toBe(0);
63
+ for (const entryId of entryIds) {
64
+ await tc.addEntry(entryId);
65
+ }
66
+ const tag = await tag_1.default.findOne({ name: tagName });
67
+ const addedEntries = await tag.getEntries();
68
+ compareExpected(addedEntries, expectedIds);
69
+ };
70
+ const tester = async (tagName, entryIds, expectedIds) => {
71
+ const id = await testCreate(tagName, entryIds, expectedIds);
72
+ await tag_1.default.delete(id);
73
+ await testAdd(tagName, entryIds, expectedIds);
74
+ };
75
+ (0, globals_1.it)("empty", async () => {
76
+ await tester("MyTag", [], []);
77
+ });
78
+ (0, globals_1.it)("with tables", async () => {
79
+ await tester("Book_Tbl_Tag", [{ table_id: books.id }], [[books.id, undefined, undefined, undefined]]);
80
+ await tester("Book_Patients_Tbl_Tag", [{ table_id: books.id }, { table_id: patients.id }], [
81
+ [books.id, undefined, undefined, undefined],
82
+ [patients.id, undefined, undefined, undefined],
83
+ ]);
84
+ });
85
+ (0, globals_1.it)("with views", async () => {
86
+ await tester("Author_list_Tag", [{ view_id: authorlist.id }], [[undefined, authorlist.id, undefined, undefined]]);
87
+ await tester("Author_list_show_Tag", [{ view_id: authorlist.id }, { view_id: authorshow.id }], [
88
+ [undefined, authorlist.id, undefined, undefined],
89
+ [undefined, authorshow.id, undefined, undefined],
90
+ ]);
91
+ });
92
+ (0, globals_1.it)("with pages", async () => {
93
+ await tester("page_a_Tag", [{ page_id: pageA.id }], [[undefined, undefined, pageA.id, undefined]]);
94
+ });
95
+ // TODO trigger and mixed
96
+ });
97
+ //# sourceMappingURL=tag.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.test.js","sourceRoot":"","sources":["../../tests/tag.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.test.d.ts","sourceRoot":"","sources":["../../tests/user.test.ts"],"names":[],"mappings":""}