@saltcorn/admin-models 0.6.4-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.
@@ -0,0 +1,230 @@
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 trigger_1 = __importDefault(require("@saltcorn/data/models/trigger"));
7
+ const table_1 = __importDefault(require("@saltcorn/data/models/table"));
8
+ const eventlog_1 = __importDefault(require("@saltcorn/data/models/eventlog"));
9
+ const tenant_1 = __importDefault(require("../models/tenant"));
10
+ const { eachTenant } = tenant_1.default;
11
+ const scheduler_1 = __importDefault(require("@saltcorn/data/models/scheduler"));
12
+ const index_1 = __importDefault(require("@saltcorn/data/db/index"));
13
+ const { getState } = require("@saltcorn/data/db/state");
14
+ const mocks_1 = __importDefault(require("@saltcorn/data/tests/mocks"));
15
+ const { plugin_with_routes, getActionCounter, resetActionCounter, sleep } = mocks_1.default;
16
+ const assertions_1 = require("@saltcorn/data/tests/assertions");
17
+ const globals_1 = require("@jest/globals");
18
+ (0, globals_1.afterAll)(index_1.default.close);
19
+ (0, globals_1.beforeAll)(async () => {
20
+ await require("@saltcorn/data/db/reset_schema")();
21
+ await require("@saltcorn/data/db/fixtures")();
22
+ });
23
+ jest.setTimeout(10000);
24
+ (0, globals_1.describe)("Action", () => {
25
+ (0, globals_1.it)("should add insert trigger", async () => {
26
+ getState().registerPlugin("mock_plugin", plugin_with_routes);
27
+ resetActionCounter();
28
+ (0, globals_1.expect)(getActionCounter()).toBe(0);
29
+ const table = await table_1.default.findOne({ name: "patients" });
30
+ (0, assertions_1.assertIsSet)(table);
31
+ const trigger = await trigger_1.default.create({
32
+ action: "incrementCounter",
33
+ table_id: table.id,
34
+ when_trigger: "Insert",
35
+ });
36
+ (0, globals_1.expect)(getActionCounter()).toBe(0);
37
+ await table.insertRow({ name: "Don Fabrizio" });
38
+ await sleep(10);
39
+ (0, globals_1.expect)(getActionCounter()).toBe(1);
40
+ const trigger1 = await trigger_1.default.findOne({ id: trigger.id });
41
+ (0, globals_1.expect)(!!trigger1).toBe(true);
42
+ (0, globals_1.expect)(trigger1.id).toBe(trigger.id);
43
+ });
44
+ (0, globals_1.it)("should add update trigger", async () => {
45
+ (0, globals_1.expect)(getActionCounter()).toBe(1);
46
+ const table = await table_1.default.findOne({ name: "patients" });
47
+ (0, assertions_1.assertIsSet)(table);
48
+ await trigger_1.default.create({
49
+ action: "setCounter",
50
+ table_id: table.id,
51
+ when_trigger: "Update",
52
+ configuration: { number: 17 },
53
+ });
54
+ (0, globals_1.expect)(getActionCounter()).toBe(1);
55
+ const don = await table.getRow({ name: "Don Fabrizio" });
56
+ (0, assertions_1.assertIsSet)(don);
57
+ await table.updateRow({ name: "Don Fabrizio II" }, don.id);
58
+ (0, globals_1.expect)(getActionCounter()).toBe(17);
59
+ });
60
+ (0, globals_1.it)("should add update trigger", async () => {
61
+ (0, globals_1.expect)(getActionCounter()).toBe(17);
62
+ const table = await table_1.default.findOne({ name: "patients" });
63
+ (0, assertions_1.assertIsSet)(table);
64
+ await trigger_1.default.create({
65
+ action: "setCounter",
66
+ table_id: table.id,
67
+ when_trigger: "Delete",
68
+ configuration: { number: 37 },
69
+ });
70
+ (0, globals_1.expect)(getActionCounter()).toBe(17);
71
+ await table.deleteRows({ name: "Don Fabrizio" });
72
+ (0, globals_1.expect)(getActionCounter()).toBe(17);
73
+ await table.deleteRows({ name: "Don Fabrizio II" });
74
+ (0, globals_1.expect)(getActionCounter()).toBe(37);
75
+ });
76
+ (0, globals_1.it)("should run js code", async () => {
77
+ const table = await table_1.default.findOne({ name: "books" });
78
+ (0, assertions_1.assertIsSet)(table);
79
+ await trigger_1.default.create({
80
+ action: "run_js_code",
81
+ table_id: table.id,
82
+ when_trigger: "Insert",
83
+ configuration: {
84
+ code: `
85
+ const table = await Table.findOne({ name: "patients" });
86
+ await table.insertRow({ name: "TriggeredInsert" });
87
+ `,
88
+ },
89
+ });
90
+ await table.insertRow({ author: "Giuseppe Tomasi", pages: 209 });
91
+ const patients = await table_1.default.findOne({ name: "patients" });
92
+ (0, assertions_1.assertIsSet)(patients);
93
+ await sleep(10);
94
+ const rows = await patients.getRows({ name: "TriggeredInsert" });
95
+ (0, globals_1.expect)(rows.length).toBe(1);
96
+ });
97
+ (0, globals_1.it)("should run webhook", async () => {
98
+ const table = await table_1.default.findOne({ name: "books" });
99
+ (0, assertions_1.assertIsSet)(table);
100
+ await trigger_1.default.create({
101
+ action: "webhook",
102
+ table_id: table.id,
103
+ when_trigger: "Update",
104
+ configuration: {
105
+ // from https://requestbin.com/
106
+ // to inspect https://pipedream.com/sources/dc_jku44wk
107
+ url: "https://b6af540a71dce96ec130de5a0c47ada6.m.pipedream.net",
108
+ },
109
+ });
110
+ const row = await table.getRow({ author: "Giuseppe Tomasi" });
111
+ (0, assertions_1.assertIsSet)(row);
112
+ await table.updateRow({ pages: 210 }, row.id);
113
+ });
114
+ (0, globals_1.it)("should list triggers", async () => {
115
+ //const table = await Table.findOne({ name: "books" });
116
+ const triggers = await trigger_1.default.findAllWithTableName();
117
+ (0, globals_1.expect)(triggers.length).toBe(5);
118
+ const trigger = triggers.find((tr) => tr && tr.table_name === "books" && tr.when_trigger === "Update");
119
+ (0, assertions_1.assertIsSet)(trigger);
120
+ (0, globals_1.expect)(trigger.action).toBe("webhook");
121
+ });
122
+ (0, globals_1.it)("should get triggers", async () => {
123
+ const table = await table_1.default.findOne({ name: "books" });
124
+ (0, assertions_1.assertIsSet)(table);
125
+ const trigger = await trigger_1.default.findOne({
126
+ table_id: table.id,
127
+ when_trigger: "Update",
128
+ });
129
+ (0, globals_1.expect)(trigger.action).toBe("webhook");
130
+ await trigger_1.default.update(trigger.id, { when_trigger: "Insert" });
131
+ const ins_trigger = trigger_1.default.find({
132
+ table_id: table.id,
133
+ when_trigger: "Insert",
134
+ });
135
+ (0, globals_1.expect)(ins_trigger.length).toBe(2);
136
+ await trigger.delete();
137
+ const ins_trigger1 = trigger_1.default.find({
138
+ table_id: table.id,
139
+ when_trigger: "Insert",
140
+ });
141
+ (0, globals_1.expect)(ins_trigger1.length).toBe(1);
142
+ });
143
+ (0, globals_1.it)("should run webhook on insert", async () => {
144
+ const table = await table_1.default.findOne({ name: "books" });
145
+ (0, assertions_1.assertIsSet)(table);
146
+ await trigger_1.default.create({
147
+ action: "webhook",
148
+ table_id: table.id,
149
+ when_trigger: "Insert",
150
+ configuration: {
151
+ // from https://requestbin.com/
152
+ // to inspect https://pipedream.com/sources/dc_jku44wk
153
+ url: "https://b6af540a71dce96ec130de5a0c47ada6.m.pipedream.net",
154
+ body: "",
155
+ },
156
+ });
157
+ await table.insertRow({ author: "NK Jemisin", pages: 901 });
158
+ });
159
+ });
160
+ (0, globals_1.describe)("Events", () => {
161
+ (0, globals_1.it)("should add custom event", async () => {
162
+ await getState().setConfig("custom_events", [
163
+ {
164
+ name: "FooHappened",
165
+ hasChannel: false,
166
+ },
167
+ {
168
+ name: "BarWasHere",
169
+ hasChannel: true,
170
+ },
171
+ ]);
172
+ await getState().setConfig("event_log_settings", {
173
+ FooHappened: true,
174
+ BarWasHere: true,
175
+ BarWasHere_channel: "Baz",
176
+ });
177
+ await getState().refresh_config();
178
+ });
179
+ (0, globals_1.it)("should emit custom event", async () => {
180
+ await trigger_1.default.emitEvent("FooHappened");
181
+ const evs = await eventlog_1.default.find({ event_type: "FooHappened" });
182
+ (0, globals_1.expect)(evs.length).toBe(0);
183
+ await sleep(100);
184
+ const evs1 = await eventlog_1.default.find({ event_type: "FooHappened" });
185
+ (0, globals_1.expect)(evs1.length).toBe(1);
186
+ });
187
+ (0, globals_1.it)("should find with user", async () => {
188
+ const ev = await eventlog_1.default.findOne({ event_type: "FooHappened" });
189
+ (0, assertions_1.assertIsSet)(ev.id);
190
+ const evlog_w_user = await eventlog_1.default.findOneWithUser(ev.id);
191
+ (0, globals_1.expect)(evlog_w_user.event_type).toBe("FooHappened");
192
+ });
193
+ (0, globals_1.it)("should emit custom event with channel", async () => {
194
+ await trigger_1.default.emitEvent("BarWasHere");
195
+ await trigger_1.default.emitEvent("BarWasHere", "Zap");
196
+ await trigger_1.default.emitEvent("BarWasHere", "Baz");
197
+ const evs = await eventlog_1.default.find({ event_type: "BarWasHere" });
198
+ (0, globals_1.expect)(evs.length).toBe(0);
199
+ await sleep(100);
200
+ const evs1 = await eventlog_1.default.find({ event_type: "BarWasHere" });
201
+ (0, globals_1.expect)(evs1.length).toBe(1);
202
+ });
203
+ });
204
+ (0, globals_1.describe)("Scheduler", () => {
205
+ (0, globals_1.it)("should run and tick", async () => {
206
+ getState().registerPlugin("mock_plugin", plugin_with_routes);
207
+ resetActionCounter();
208
+ (0, globals_1.expect)(getActionCounter()).toBe(0);
209
+ await trigger_1.default.create({
210
+ action: "incrementCounter",
211
+ when_trigger: "Often",
212
+ });
213
+ let stopSched = false;
214
+ (0, scheduler_1.default)({
215
+ stop_when: () => stopSched,
216
+ tickSeconds: 1,
217
+ watchReaper: undefined,
218
+ port: undefined,
219
+ disableScheduler: undefined,
220
+ eachTenant,
221
+ });
222
+ await sleep(500);
223
+ (0, globals_1.expect)(getActionCounter()).toBe(1);
224
+ await sleep(1200);
225
+ (0, globals_1.expect)(getActionCounter() > 1).toBe(true);
226
+ stopSched = true;
227
+ await sleep(1200);
228
+ });
229
+ });
230
+ //# sourceMappingURL=actions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.test.js","sourceRoot":"","sources":["../../tests/actions.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=backup.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.test.d.ts","sourceRoot":"","sources":["../../tests/backup.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
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 index_1 = __importDefault(require("@saltcorn/data/db/index"));
7
+ const { getState } = require("@saltcorn/data/db/state");
8
+ getState().registerPlugin("base", require("@saltcorn/data/base-plugin"));
9
+ const backup_1 = __importDefault(require("../models/backup"));
10
+ const { create_backup, restore } = backup_1.default;
11
+ const reset = require("@saltcorn/data/db/reset_schema");
12
+ const promises_1 = require("fs/promises");
13
+ const table_1 = __importDefault(require("@saltcorn/data/models/table"));
14
+ const view_1 = __importDefault(require("@saltcorn/data/models/view"));
15
+ const user_1 = __importDefault(require("@saltcorn/data/models/user"));
16
+ const config_1 = __importDefault(require("@saltcorn/data/models/config"));
17
+ const { setConfig, getConfig } = config_1.default;
18
+ const trigger_1 = __importDefault(require("@saltcorn/data/models/trigger"));
19
+ const library_1 = __importDefault(require("@saltcorn/data/models/library"));
20
+ const role_1 = __importDefault(require("@saltcorn/data/models/role"));
21
+ const assertions_1 = require("@saltcorn/data/tests/assertions");
22
+ const globals_1 = require("@jest/globals");
23
+ (0, globals_1.afterAll)(index_1.default.close);
24
+ (0, globals_1.beforeAll)(async () => {
25
+ await require("@saltcorn/data/db/reset_schema")();
26
+ await require("@saltcorn/data/db/fixtures")();
27
+ });
28
+ (0, globals_1.describe)("Backup and restore", () => {
29
+ (0, globals_1.it)("should create and restore backup", async () => {
30
+ await setConfig("site_name", "backups rule!");
31
+ const sn1 = await getConfig("site_name");
32
+ (0, globals_1.expect)(sn1).toBe("backups rule!");
33
+ await role_1.default.create({ role: "paid", id: 6 });
34
+ await table_1.default.create("myblanktable", { min_role_read: 6 });
35
+ await trigger_1.default.create({
36
+ name: "footrig",
37
+ table_id: 1,
38
+ when_trigger: "Insert",
39
+ action: "run_js_code",
40
+ configuration: { code: "console.log('new user')" },
41
+ });
42
+ await trigger_1.default.create({
43
+ name: "hourtrig",
44
+ when_trigger: "Hourly",
45
+ action: "run_js_code",
46
+ configuration: { code: "console.log('cuckoo')" },
47
+ });
48
+ await library_1.default.create({
49
+ name: "foo",
50
+ icon: "fa-bar",
51
+ layout: { baz: "bar" },
52
+ });
53
+ const fnm = await create_backup();
54
+ const t1 = await table_1.default.findOne({ name: "books" });
55
+ (0, assertions_1.assertIsSet)(t1);
56
+ const t1c = await t1.countRows();
57
+ const v1 = await view_1.default.find();
58
+ (0, globals_1.expect)(!!t1).toBe(true);
59
+ await reset();
60
+ const admu = await user_1.default.create({
61
+ email: "admin@foo.com",
62
+ password: "AhGGr6rhu45",
63
+ role_id: 1,
64
+ });
65
+ (0, assertions_1.assertsObjectIsUser)(admu);
66
+ (0, globals_1.expect)(typeof admu.password).toBe("string");
67
+ const t2 = await table_1.default.findOne({ name: "books" });
68
+ (0, globals_1.expect)(t2).toBe(null);
69
+ const sn0 = await getConfig("site_name");
70
+ (0, globals_1.expect)(sn0).toBe("Saltcorn");
71
+ const restore_res = await restore(fnm, (p) => { });
72
+ await (0, promises_1.unlink)(fnm);
73
+ (0, globals_1.expect)(restore_res).toBe(undefined);
74
+ const t3 = await table_1.default.findOne({ name: "books" });
75
+ (0, assertions_1.assertIsSet)(t3);
76
+ (0, globals_1.expect)(!!t3).toBe(true);
77
+ const t5 = await table_1.default.findOne({ name: "myblanktable" });
78
+ (0, assertions_1.assertIsSet)(t5);
79
+ (0, globals_1.expect)(!!t5).toBe(true);
80
+ (0, globals_1.expect)(t5.min_role_read).toBe(6);
81
+ const t3c = await t3.countRows();
82
+ (0, globals_1.expect)(t1c).toBe(t3c);
83
+ const v2 = await view_1.default.find();
84
+ (0, globals_1.expect)(v1.length).toBe(v2.length);
85
+ const sn = await getConfig("site_name");
86
+ (0, globals_1.expect)(sn).toBe("backups rule!");
87
+ await t3.insertRow({ author: "Marcus Rediker", pages: 224 });
88
+ const staff = await user_1.default.findOne({ email: "staff@foo.com" });
89
+ (0, globals_1.expect)(!!staff).toBe(true);
90
+ (0, assertions_1.assertsObjectIsUser)(staff);
91
+ (0, globals_1.expect)(typeof staff.password).toBe("string");
92
+ const trig = await trigger_1.default.findOne({ name: "footrig" });
93
+ (0, globals_1.expect)(!!trig).toBe(true);
94
+ const htrig = await trigger_1.default.findOne({ name: "hourtrig" });
95
+ (0, globals_1.expect)(!!htrig).toBe(true);
96
+ const lib = await library_1.default.findOne({ name: "foo" });
97
+ (0, globals_1.expect)(!!lib).toBe(true);
98
+ (0, globals_1.expect)(staff.checkPassword("ghrarhr54hg")).toBe(true);
99
+ });
100
+ });
101
+ //# sourceMappingURL=backup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.test.js","sourceRoot":"","sources":["../../tests/backup.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pack.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack.test.d.ts","sourceRoot":"","sources":["../../tests/pack.test.ts"],"names":[],"mappings":""}