@saltcorn/data 1.6.0-rc.2 → 1.6.0-rc.4

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 (156) hide show
  1. package/dist/base-plugin/actions.d.ts +1 -1
  2. package/dist/base-plugin/actions.d.ts.map +1 -1
  3. package/dist/base-plugin/actions.js +9 -12
  4. package/dist/base-plugin/actions.js.map +1 -1
  5. package/dist/base-plugin/index.d.ts +83 -1
  6. package/dist/base-plugin/index.d.ts.map +1 -1
  7. package/dist/base-plugin/types.d.ts +82 -0
  8. package/dist/base-plugin/types.d.ts.map +1 -1
  9. package/dist/base-plugin/types.js +31 -2
  10. package/dist/base-plugin/types.js.map +1 -1
  11. package/dist/db/state.d.ts.map +1 -1
  12. package/dist/db/state.js +5 -1
  13. package/dist/db/state.js.map +1 -1
  14. package/dist/models/file.d.ts +30 -0
  15. package/dist/models/file.d.ts.map +1 -1
  16. package/dist/models/file.js +100 -16
  17. package/dist/models/file.js.map +1 -1
  18. package/dist/viewable_fields.js +1 -1
  19. package/dist/viewable_fields.js.map +1 -1
  20. package/package.json +8 -8
  21. package/dist/setup-test-schema.d.ts +0 -2
  22. package/dist/setup-test-schema.d.ts.map +0 -1
  23. package/dist/setup-test-schema.js +0 -34
  24. package/dist/setup-test-schema.js.map +0 -1
  25. package/dist/tests/actions.test.d.ts +0 -2
  26. package/dist/tests/actions.test.d.ts.map +0 -1
  27. package/dist/tests/actions.test.js +0 -1104
  28. package/dist/tests/actions.test.js.map +0 -1
  29. package/dist/tests/auth.test.d.ts +0 -2
  30. package/dist/tests/auth.test.d.ts.map +0 -1
  31. package/dist/tests/auth.test.js +0 -927
  32. package/dist/tests/auth.test.js.map +0 -1
  33. package/dist/tests/auxtest.test.d.ts +0 -2
  34. package/dist/tests/auxtest.test.d.ts.map +0 -1
  35. package/dist/tests/auxtest.test.js +0 -631
  36. package/dist/tests/auxtest.test.js.map +0 -1
  37. package/dist/tests/base.test.d.ts +0 -2
  38. package/dist/tests/base.test.d.ts.map +0 -1
  39. package/dist/tests/base.test.js +0 -27
  40. package/dist/tests/base.test.js.map +0 -1
  41. package/dist/tests/calc.test.d.ts +0 -2
  42. package/dist/tests/calc.test.d.ts.map +0 -1
  43. package/dist/tests/calc.test.js +0 -1465
  44. package/dist/tests/calc.test.js.map +0 -1
  45. package/dist/tests/composite_pk.test.d.ts +0 -2
  46. package/dist/tests/composite_pk.test.d.ts.map +0 -1
  47. package/dist/tests/composite_pk.test.js +0 -98
  48. package/dist/tests/composite_pk.test.js.map +0 -1
  49. package/dist/tests/config.test.d.ts +0 -2
  50. package/dist/tests/config.test.d.ts.map +0 -1
  51. package/dist/tests/config.test.js +0 -86
  52. package/dist/tests/config.test.js.map +0 -1
  53. package/dist/tests/db.test.d.ts +0 -2
  54. package/dist/tests/db.test.d.ts.map +0 -1
  55. package/dist/tests/db.test.js +0 -179
  56. package/dist/tests/db.test.js.map +0 -1
  57. package/dist/tests/discover.test.d.ts +0 -2
  58. package/dist/tests/discover.test.d.ts.map +0 -1
  59. package/dist/tests/discover.test.js +0 -330
  60. package/dist/tests/discover.test.js.map +0 -1
  61. package/dist/tests/edit.test.d.ts +0 -2
  62. package/dist/tests/edit.test.d.ts.map +0 -1
  63. package/dist/tests/edit.test.js +0 -1186
  64. package/dist/tests/edit.test.js.map +0 -1
  65. package/dist/tests/email.test.d.ts +0 -2
  66. package/dist/tests/email.test.d.ts.map +0 -1
  67. package/dist/tests/email.test.js +0 -255
  68. package/dist/tests/email.test.js.map +0 -1
  69. package/dist/tests/exact_views.test.d.ts +0 -2
  70. package/dist/tests/exact_views.test.d.ts.map +0 -1
  71. package/dist/tests/exact_views.test.js +0 -1363
  72. package/dist/tests/exact_views.test.js.map +0 -1
  73. package/dist/tests/field.test.d.ts +0 -2
  74. package/dist/tests/field.test.d.ts.map +0 -1
  75. package/dist/tests/field.test.js +0 -589
  76. package/dist/tests/field.test.js.map +0 -1
  77. package/dist/tests/fieldviews.test.d.ts +0 -2
  78. package/dist/tests/fieldviews.test.d.ts.map +0 -1
  79. package/dist/tests/fieldviews.test.js +0 -74
  80. package/dist/tests/fieldviews.test.js.map +0 -1
  81. package/dist/tests/file.test.d.ts +0 -2
  82. package/dist/tests/file.test.d.ts.map +0 -1
  83. package/dist/tests/file.test.js +0 -165
  84. package/dist/tests/file.test.js.map +0 -1
  85. package/dist/tests/filter.test.d.ts +0 -2
  86. package/dist/tests/filter.test.d.ts.map +0 -1
  87. package/dist/tests/filter.test.js +0 -499
  88. package/dist/tests/filter.test.js.map +0 -1
  89. package/dist/tests/form.test.d.ts +0 -2
  90. package/dist/tests/form.test.d.ts.map +0 -1
  91. package/dist/tests/form.test.js +0 -343
  92. package/dist/tests/form.test.js.map +0 -1
  93. package/dist/tests/list.test.d.ts +0 -2
  94. package/dist/tests/list.test.d.ts.map +0 -1
  95. package/dist/tests/list.test.js +0 -1236
  96. package/dist/tests/list.test.js.map +0 -1
  97. package/dist/tests/mail_queue.test.d.ts +0 -2
  98. package/dist/tests/mail_queue.test.d.ts.map +0 -1
  99. package/dist/tests/mail_queue.test.js +0 -122
  100. package/dist/tests/mail_queue.test.js.map +0 -1
  101. package/dist/tests/models.test.d.ts +0 -2
  102. package/dist/tests/models.test.d.ts.map +0 -1
  103. package/dist/tests/models.test.js +0 -417
  104. package/dist/tests/models.test.js.map +0 -1
  105. package/dist/tests/page.test.d.ts +0 -2
  106. package/dist/tests/page.test.d.ts.map +0 -1
  107. package/dist/tests/page.test.js +0 -91
  108. package/dist/tests/page.test.js.map +0 -1
  109. package/dist/tests/page_group.test.d.ts +0 -2
  110. package/dist/tests/page_group.test.d.ts.map +0 -1
  111. package/dist/tests/page_group.test.js +0 -52
  112. package/dist/tests/page_group.test.js.map +0 -1
  113. package/dist/tests/plugin.test.d.ts +0 -2
  114. package/dist/tests/plugin.test.d.ts.map +0 -1
  115. package/dist/tests/plugin.test.js +0 -66
  116. package/dist/tests/plugin.test.js.map +0 -1
  117. package/dist/tests/show.test.d.ts +0 -2
  118. package/dist/tests/show.test.d.ts.map +0 -1
  119. package/dist/tests/show.test.js +0 -613
  120. package/dist/tests/show.test.js.map +0 -1
  121. package/dist/tests/state.test.d.ts +0 -2
  122. package/dist/tests/state.test.d.ts.map +0 -1
  123. package/dist/tests/state.test.js +0 -82
  124. package/dist/tests/state.test.js.map +0 -1
  125. package/dist/tests/table.test.d.ts +0 -2
  126. package/dist/tests/table.test.d.ts.map +0 -1
  127. package/dist/tests/table.test.js +0 -3211
  128. package/dist/tests/table.test.js.map +0 -1
  129. package/dist/tests/table_history.test.d.ts +0 -2
  130. package/dist/tests/table_history.test.d.ts.map +0 -1
  131. package/dist/tests/table_history.test.js +0 -415
  132. package/dist/tests/table_history.test.js.map +0 -1
  133. package/dist/tests/table_sync_info.test.d.ts +0 -2
  134. package/dist/tests/table_sync_info.test.d.ts.map +0 -1
  135. package/dist/tests/table_sync_info.test.js +0 -62
  136. package/dist/tests/table_sync_info.test.js.map +0 -1
  137. package/dist/tests/tag.test.d.ts +0 -2
  138. package/dist/tests/tag.test.d.ts.map +0 -1
  139. package/dist/tests/tag.test.js +0 -97
  140. package/dist/tests/tag.test.js.map +0 -1
  141. package/dist/tests/user.test.d.ts +0 -2
  142. package/dist/tests/user.test.d.ts.map +0 -1
  143. package/dist/tests/user.test.js +0 -467
  144. package/dist/tests/user.test.js.map +0 -1
  145. package/dist/tests/view.test.d.ts +0 -2
  146. package/dist/tests/view.test.d.ts.map +0 -1
  147. package/dist/tests/view.test.js +0 -703
  148. package/dist/tests/view.test.js.map +0 -1
  149. package/dist/tests/workflow.test.d.ts +0 -2
  150. package/dist/tests/workflow.test.d.ts.map +0 -1
  151. package/dist/tests/workflow.test.js +0 -303
  152. package/dist/tests/workflow.test.js.map +0 -1
  153. package/dist/tests/workflow_run.test.d.ts +0 -2
  154. package/dist/tests/workflow_run.test.d.ts.map +0 -1
  155. package/dist/tests/workflow_run.test.js +0 -922
  156. package/dist/tests/workflow_run.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag.test.js","sourceRoot":"","sources":["../../tests/tag.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=user.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.test.d.ts","sourceRoot":"","sources":["../../tests/user.test.ts"],"names":[],"mappings":""}
@@ -1,467 +0,0 @@
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("../db/index"));
7
- const user_1 = __importDefault(require("../models/user"));
8
- const table_1 = __importDefault(require("../models/table"));
9
- const field_1 = __importDefault(require("../models/field"));
10
- const assertions_1 = require("./assertions");
11
- const test_expect_1 = require("@saltcorn/db-common/test_expect");
12
- const { getState } = require("../db/state");
13
- getState().registerPlugin("base", require("../base-plugin"));
14
- (0, test_expect_1.beforeAll)(async () => {
15
- await require("../db/reset_schema")();
16
- await require("../db/fixtures")();
17
- });
18
- test_expect_1.jest.setTimeout(20000);
19
- (0, test_expect_1.afterAll)(index_1.default.close);
20
- (0, test_expect_1.describe)("User model", () => {
21
- (0, test_expect_1.it)("should create", async () => {
22
- await user_1.default.create({ email: "foo@bar.com", password: "YEgege46gew" });
23
- const u = await user_1.default.findOne({ email: "foo@bar.com" });
24
- (0, assertions_1.assertIsSet)(u);
25
- (0, test_expect_1.expect)(u.email).toBe("foo@bar.com");
26
- (0, test_expect_1.expect)(u.password === "YEgege46gew").toBe(false);
27
- const hasu = await user_1.default.nonEmpty();
28
- (0, test_expect_1.expect)(hasu).toBe(true);
29
- });
30
- (0, test_expect_1.it)("should not create with common pw", async () => {
31
- const res = await user_1.default.create({
32
- email: "foo2@bar.com",
33
- password: "passw0rd",
34
- });
35
- (0, assertions_1.assertIsErrorMsg)(res);
36
- (0, test_expect_1.expect)(!!res.error).toBe(true);
37
- });
38
- (0, test_expect_1.it)("should authenticate", async () => {
39
- const u = await user_1.default.authenticate({
40
- email: "foo@bar.com",
41
- password: "YEgege46gew",
42
- });
43
- (0, assertions_1.assertIsSet)(u);
44
- (0, test_expect_1.expect)(u.email).toBe("foo@bar.com");
45
- (0, test_expect_1.expect)(u.checkPassword("YEgege46gew")).toBe(true);
46
- (0, test_expect_1.expect)(u.checkPassword("foobar")).toBe(false);
47
- const hpw = await user_1.default.hashPassword("YEgege46gew");
48
- (0, test_expect_1.expect)(hpw).not.toBe("YEgege46gew");
49
- const u0 = await user_1.default.authenticate({
50
- email: "foo@bar.com",
51
- password: "secrat",
52
- });
53
- (0, test_expect_1.expect)(u0).toBe(false);
54
- const u00 = await user_1.default.authenticate({
55
- email: "foo@baz.com",
56
- password: "YEgege46gew",
57
- });
58
- (0, test_expect_1.expect)(u00).toBe(false);
59
- const uci = await user_1.default.authenticate({
60
- email: "FOO@bar.com",
61
- password: "YEgege46gew",
62
- });
63
- (0, assertions_1.assertIsSet)(uci);
64
- (0, test_expect_1.expect)(uci.email).toBe("foo@bar.com");
65
- const uci0 = await user_1.default.authenticate({
66
- email: "OO@bar.co",
67
- password: "YEgege46gew",
68
- });
69
- (0, test_expect_1.expect)(uci0).toBe(false);
70
- const uci1 = await user_1.default.authenticate({
71
- email: "oo@bar.co",
72
- password: "YEgege46gew",
73
- });
74
- (0, test_expect_1.expect)(uci1).toBe(false);
75
- //password is case sensitive
76
- const uci2 = await user_1.default.authenticate({
77
- email: "FOO@bar.com",
78
- password: "yEgege46gew",
79
- });
80
- (0, test_expect_1.expect)(uci2).toBe(false);
81
- });
82
- (0, test_expect_1.it)("should survive nonexistant fields", async () => {
83
- const u = await user_1.default.authenticate({
84
- email: "foo@bar.com",
85
- password: "YEgege46gew",
86
- stuff: 4,
87
- });
88
- (0, assertions_1.assertIsSet)(u);
89
- });
90
- (0, test_expect_1.it)("should reset password", async () => {
91
- const u = await user_1.default.findOne({ email: "foo@bar.com" });
92
- (0, assertions_1.assertIsSet)(u);
93
- (0, test_expect_1.expect)(u.session_object.email).toBe("foo@bar.com");
94
- const token = await u.getNewResetToken();
95
- (0, test_expect_1.expect)(token.length > 10).toBe(true);
96
- const res0 = await user_1.default.resetPasswordWithToken({
97
- email: u.email,
98
- reset_password_token: token,
99
- password: "passw0rd",
100
- confirm_password: "passw0rd",
101
- });
102
- (0, assertions_1.assertsIsSuccessMessage)(res0);
103
- (0, test_expect_1.expect)(!!res0.success).toBe(false);
104
- const res = await user_1.default.resetPasswordWithToken({
105
- email: u.email,
106
- reset_password_token: token,
107
- password: "newpaass",
108
- confirm_password: "newpaass",
109
- });
110
- (0, assertions_1.assertsIsSuccessMessage)(res);
111
- (0, test_expect_1.expect)(!!res.success).toBe(true);
112
- const u1 = await user_1.default.authenticate({
113
- email: "foo@bar.com",
114
- password: "YEgege46gew",
115
- });
116
- (0, test_expect_1.expect)(!!u1).toBe(false);
117
- const u2 = await user_1.default.authenticate({
118
- email: "foo@bar.com",
119
- password: "newpaass",
120
- });
121
- (0, test_expect_1.expect)(!!u2).toBe(true);
122
- const res1 = await user_1.default.resetPasswordWithToken({
123
- email: u.email,
124
- reset_password_token: "somerandomtoken",
125
- password: "newpaass",
126
- confirm_password: "newpaass",
127
- });
128
- (0, test_expect_1.expect)(res1).toEqual({ error: "User not found or expired token" });
129
- const res2 = await user_1.default.resetPasswordWithToken({
130
- email: u.email,
131
- reset_password_token: "",
132
- password: "newpaass",
133
- confirm_password: "newpaass",
134
- });
135
- (0, test_expect_1.expect)(res2).toEqual({
136
- error: "Invalid token or invalid token length or incorrect email",
137
- });
138
- });
139
- (0, test_expect_1.it)("should reset API token", async () => {
140
- const u = await user_1.default.findOne({ email: "foo@bar.com" });
141
- (0, assertions_1.assertIsSet)(u);
142
- const token = await u.getNewAPIToken();
143
- (0, test_expect_1.expect)(token.length > 5).toBe(true);
144
- const u1 = await user_1.default.findOne({ email: "foo@bar.com" });
145
- (0, assertions_1.assertIsSet)(u1);
146
- const tokens1 = await u1.listApiTokens();
147
- (0, test_expect_1.expect)(tokens1.find((t) => t.token === token)).toBeDefined();
148
- const token2 = await u1.getNewAPIToken();
149
- const u2 = await user_1.default.findOne({ email: "foo@bar.com" });
150
- (0, assertions_1.assertIsSet)(u2);
151
- const tokens2 = await u2.listApiTokens();
152
- (0, test_expect_1.expect)(tokens2.find((t) => t.token === token2)).toBeDefined();
153
- (0, test_expect_1.expect)(u2.api_token).toBeNull();
154
- });
155
- (0, test_expect_1.it)("should set language ", async () => {
156
- const u = await user_1.default.findOne({ email: "foo@bar.com" });
157
- (0, assertions_1.assertIsSet)(u);
158
- await u.set_language("fr");
159
- });
160
- (0, test_expect_1.it)("should generate password ", async () => {
161
- const rndpass = user_1.default.generate_password();
162
- (0, test_expect_1.expect)(typeof rndpass).toBe("string");
163
- (0, test_expect_1.expect)(rndpass.length).toBeGreaterThan(9);
164
- });
165
- (0, test_expect_1.it)("should validate email", async () => {
166
- (0, test_expect_1.expect)(user_1.default.valid_email("foobar")).toBe(false);
167
- (0, test_expect_1.expect)(user_1.default.valid_email("foo@bar.com")).toBe(true);
168
- (0, test_expect_1.expect)(user_1.default.valid_email(`{email:"foo@bar.com"}`)).toBe(false);
169
- });
170
- (0, test_expect_1.it)("should verify with token", async () => {
171
- await getState().setConfig("elevate_verified", "40");
172
- const u = await user_1.default.findOne({ email: "foo@bar.com" });
173
- (0, assertions_1.assertIsSet)(u);
174
- await u.update({ verification_token: "foobarbazfoobarbaz" });
175
- (0, test_expect_1.expect)(!!u.verified_on).toBe(false);
176
- const res1 = await user_1.default.verifyWithToken({
177
- email: "foo@bar.com",
178
- verification_token: "foobar",
179
- });
180
- (0, assertions_1.assertIsErrorMsg)(res1);
181
- (0, test_expect_1.expect)(res1.error).toBe("Invalid token");
182
- const res2 = await user_1.default.verifyWithToken({
183
- email: "foo@bar.com",
184
- verification_token: "foobarbazfoobarbaz",
185
- });
186
- (0, test_expect_1.expect)(res2).toBe(true);
187
- const u2 = await user_1.default.findOne({ email: "foo@bar.com" });
188
- (0, assertions_1.assertIsSet)(u2);
189
- (0, test_expect_1.expect)(!!u2.verified_on).toBe(true);
190
- (0, test_expect_1.expect)(u2.role_id).toBe(40);
191
- });
192
- (0, test_expect_1.it)("should count", async () => {
193
- const n = await user_1.default.count();
194
- (0, test_expect_1.expect)(n).toBeGreaterThan(2);
195
- (0, test_expect_1.expect)(n).toBeLessThan(20);
196
- });
197
- (0, test_expect_1.it)("should delete", async () => {
198
- const u = await user_1.default.findOne({ email: "foo@bar.com" });
199
- (0, assertions_1.assertIsSet)(u);
200
- await u.delete();
201
- const us = await user_1.default.find({ email: "foo@bar.com" });
202
- (0, test_expect_1.expect)(us.length).toBe(0);
203
- });
204
- (0, test_expect_1.it)("should find or create by attribute ", async () => {
205
- await getState().setConfig("email_mask", "yahoo.com");
206
- const u = await user_1.default.findOrCreateByAttribute("googleId", 5, {
207
- email: "tom@yahoo.com",
208
- });
209
- (0, assertions_1.assertsObjectIsUser)(u);
210
- (0, test_expect_1.expect)(typeof u.password).toBe("undefined");
211
- const u1 = await user_1.default.findOrCreateByAttribute("googleId", 5);
212
- (0, assertions_1.assertsObjectIsUser)(u1);
213
- (0, test_expect_1.expect)(u.id).toEqual(u1.id);
214
- (0, test_expect_1.expect)(u1.email).toBe("tom@yahoo.com");
215
- const res = await user_1.default.findOrCreateByAttribute("googleId", 7, {
216
- email: "tomn@hey.com",
217
- });
218
- (0, test_expect_1.expect)(res).toBe(false);
219
- await getState().setConfig("new_user_form", "some_user_view");
220
- const u2 = await user_1.default.findOrCreateByAttribute("googleId", 9, {
221
- email: "foobar@yahoo.com",
222
- });
223
- (0, assertions_1.assertsObjectIsUser)(u2);
224
- (0, test_expect_1.expect)(!!u2.id).toBe(false);
225
- await getState().setConfig("new_user_form", "");
226
- });
227
- (0, test_expect_1.it)("has table", async () => {
228
- const t = user_1.default.table;
229
- (0, assertions_1.assertIsSet)(t);
230
- (0, test_expect_1.expect)(t.name).toBe("users");
231
- });
232
- });
233
- (0, test_expect_1.describe)("User fields", () => {
234
- (0, test_expect_1.it)("should add fields", async () => {
235
- const table = table_1.default.findOne({ name: "users" });
236
- (0, assertions_1.assertIsSet)(table);
237
- await field_1.default.create({
238
- table,
239
- label: "Height",
240
- type: "Integer",
241
- });
242
- await user_1.default.create({
243
- email: "foo1@bar.com",
244
- password: "YEge56FGew",
245
- height: 183,
246
- });
247
- const u = await user_1.default.authenticate({
248
- email: "foo1@bar.com",
249
- password: "YEge56FGew",
250
- });
251
- (0, assertions_1.assertsObjectIsUser)(u);
252
- (0, test_expect_1.expect)(u.email).toBe("foo1@bar.com");
253
- (0, test_expect_1.expect)(u.role_id).toBe(80);
254
- (0, test_expect_1.expect)(u.height).toBe(183);
255
- (0, test_expect_1.expect)(u.password === "YEge56FGew").toBe(false);
256
- const ut = await table.getRow({ id: u.id });
257
- (0, assertions_1.assertIsSet)(ut);
258
- (0, test_expect_1.expect)(ut.email).toBe("foo1@bar.com");
259
- (0, test_expect_1.expect)(ut.height).toBe(183);
260
- });
261
- (0, test_expect_1.it)("should add calculated fields", async () => {
262
- const table = user_1.default.table;
263
- (0, assertions_1.assertIsSet)(table);
264
- await field_1.default.create({
265
- table,
266
- label: "upper1",
267
- type: "String",
268
- calculated: true,
269
- expression: "email.toUpperCase()",
270
- });
271
- await user_1.default.create({
272
- email: "foo2@bar.com",
273
- password: "YEge56FGew",
274
- height: 183,
275
- });
276
- const u = await user_1.default.authenticate({
277
- email: "foo2@bar.com",
278
- password: "YEge56FGew",
279
- });
280
- (0, assertions_1.assertsObjectIsUser)(u);
281
- (0, test_expect_1.expect)(u.email).toBe("foo2@bar.com");
282
- (0, test_expect_1.expect)(u.role_id).toBe(80);
283
- (0, test_expect_1.expect)(u.height).toBe(183);
284
- (0, test_expect_1.expect)(u.upper1).toBe("FOO2@BAR.COM");
285
- });
286
- (0, test_expect_1.it)("should add stored calculated fields", async () => {
287
- const table = user_1.default.table;
288
- (0, assertions_1.assertIsSet)(table);
289
- await field_1.default.create({
290
- table,
291
- label: "upper2",
292
- type: "String",
293
- calculated: true,
294
- expression: "email.toUpperCase()",
295
- stored: true,
296
- });
297
- await user_1.default.create({
298
- email: "foo3@bar.com",
299
- password: "YEge56FGew",
300
- height: 183,
301
- });
302
- const u = await user_1.default.authenticate({
303
- email: "foo3@bar.com",
304
- password: "YEge56FGew",
305
- });
306
- (0, assertions_1.assertsObjectIsUser)(u);
307
- (0, test_expect_1.expect)(u.email).toBe("foo3@bar.com");
308
- (0, test_expect_1.expect)(u.role_id).toBe(80);
309
- (0, test_expect_1.expect)(u.height).toBe(183);
310
- (0, test_expect_1.expect)(u.upper2).toBe("FOO3@BAR.COM");
311
- });
312
- });
313
- (0, test_expect_1.describe)("User join fields and aggregations in ownership", () => {
314
- (0, test_expect_1.it)("should use join fields in ownership", async () => {
315
- // user to patient join field
316
- const users = table_1.default.findOne({ name: "users" });
317
- (0, assertions_1.assertIsSet)(users);
318
- await field_1.default.create({
319
- table: users,
320
- label: "cares_for",
321
- type: "Key to patients",
322
- });
323
- const patients = table_1.default.findOne({ name: "patients" });
324
- (0, assertions_1.assertIsSet)(patients);
325
- await patients.update({ ownership_formula: "user.cares_for.id===id" });
326
- const patientRows = await patients.getRows({});
327
- await user_1.default.create({
328
- email: "foo7@bar.com",
329
- password: "YEgg4t6FGew",
330
- cares_for: patientRows[0].id,
331
- });
332
- const u = await user_1.default.authenticate({
333
- email: "foo7@bar.com",
334
- password: "YEgg4t6FGew",
335
- });
336
- (0, assertions_1.assertIsSet)(u);
337
- (0, test_expect_1.expect)(u.cares_for?.id).toBe(patientRows[0].id);
338
- (0, test_expect_1.expect)(patients.is_owner(u, patientRows[0])).toBe(true);
339
- (0, test_expect_1.expect)(patients.is_owner(u, patientRows[1])).toBe(false);
340
- });
341
- (0, test_expect_1.it)("should use aggregation in ownership", async () => {
342
- const books = table_1.default.findOne({ name: "books" });
343
- (0, assertions_1.assertIsSet)(books);
344
- await field_1.default.create({
345
- table: books,
346
- label: "editor",
347
- type: "Key to users",
348
- });
349
- const users = table_1.default.findOne({ name: "users" });
350
- (0, assertions_1.assertIsSet)(users);
351
- const u0 = (await user_1.default.create({
352
- email: "foo8@bar.com",
353
- password: "YEgklFGew",
354
- }));
355
- const bookRows = await books.getRows({});
356
- await books.updateRow({ editor: u0.id }, bookRows[0].id);
357
- await books.update({
358
- min_role_read: 1,
359
- min_role_write: 1,
360
- ownership_formula: "user.books_by_editor.map(b=>b.id).includes(id)",
361
- });
362
- const u = await user_1.default.authenticate({
363
- email: "foo8@bar.com",
364
- password: "YEgklFGew",
365
- });
366
- (0, assertions_1.assertIsSet)(u);
367
- (0, test_expect_1.expect)(books.is_owner(u, bookRows[0])).toBe(true);
368
- (0, test_expect_1.expect)(books.is_owner(u, bookRows[1])).toBe(false);
369
- });
370
- });
371
- (0, test_expect_1.describe)("Roles", () => {
372
- (0, test_expect_1.it)("has 4 roles", async () => {
373
- const roles = await user_1.default.get_roles();
374
- (0, test_expect_1.expect)(roles.length).toBe(4);
375
- (0, test_expect_1.expect)(roles.map((r) => r.id)).toContain(80);
376
- (0, test_expect_1.expect)(roles.map((r) => r.id)).toContain(40);
377
- (0, test_expect_1.expect)(roles.map((r) => r.id)).toContain(100);
378
- (0, test_expect_1.expect)(roles.map((r) => r.id)).toContain(1);
379
- });
380
- });
381
- (0, test_expect_1.describe)("SQL injection tests on user table", () => {
382
- const test_sql_injection = async (where, { can_fail } = {}) => {
383
- let found_users;
384
- if (can_fail) {
385
- try {
386
- found_users = await user_1.default.find(where);
387
- }
388
- catch (error) {
389
- //ignore
390
- }
391
- }
392
- else
393
- found_users = await user_1.default.find(where);
394
- // assert that no users were found
395
- (0, test_expect_1.expect)((found_users || []).length).toBe(0);
396
- // assert that users table was not dropped
397
- const nusers = await table_1.default.findOne({ name: "users" })?.countRows();
398
- (0, test_expect_1.expect)(typeof nusers).toBe("number");
399
- (0, test_expect_1.expect)(nusers).toBeGreaterThan(1);
400
- };
401
- (0, test_expect_1.it)("json single quote in variable", async () => {
402
- await test_sql_injection({
403
- "Robert'); DROP TABLE users; --": { json: ["bar", 5] },
404
- }, { can_fail: true });
405
- });
406
- (0, test_expect_1.it)("json single quote in key", async () => {
407
- await test_sql_injection({
408
- _attributes: { json: ["Robert'); DROP TABLE users; --", 5] },
409
- });
410
- });
411
- (0, test_expect_1.it)("json single quote in key", async () => {
412
- await test_sql_injection({
413
- _attributes: { json: ["Robert'; DROP TABLE users; --", 5] },
414
- });
415
- });
416
- (0, test_expect_1.it)("json single quote in key", async () => {
417
- await test_sql_injection({
418
- _attributes: { json: ['Robert"; DROP TABLE users; --', 5] },
419
- });
420
- });
421
- (0, test_expect_1.it)("json single quote in key", async () => {
422
- await test_sql_injection({
423
- _attributes: { json: ["Robert')) OR 1 = 1 --", 5] },
424
- });
425
- });
426
- (0, test_expect_1.it)("json single quote in key", async () => {
427
- await test_sql_injection({
428
- _attributes: { json: ["Robert') OR 1 = 1 --", 5] },
429
- });
430
- });
431
- (0, test_expect_1.it)("json single quote in key", async () => {
432
- await test_sql_injection({
433
- _attributes: { json: ['Robert")) OR 1 = 1 --', 5] },
434
- });
435
- });
436
- (0, test_expect_1.it)("json single quote in key", async () => {
437
- await test_sql_injection({
438
- _attributes: { json: ['Robert") OR 1 = 1 --', 5] },
439
- });
440
- });
441
- (0, test_expect_1.it)("single quote in variable", async () => {
442
- await test_sql_injection({
443
- "Robert'); DROP TABLE users; --": 5,
444
- }, { can_fail: true });
445
- });
446
- (0, test_expect_1.it)("double quote in variable eq", async () => {
447
- await test_sql_injection({
448
- eq: [Symbol('Robert"); DROP TABLE users; --'), 5],
449
- }, { can_fail: true });
450
- });
451
- (0, test_expect_1.it)("single quote in value", async () => {
452
- await test_sql_injection({
453
- email: "Robert'); DROP TABLE users; --",
454
- });
455
- });
456
- (0, test_expect_1.it)("double quote in value", async () => {
457
- await test_sql_injection({
458
- email: 'Robert"); DROP TABLE users; --',
459
- });
460
- });
461
- (0, test_expect_1.it)("double quote in variable", async () => {
462
- await test_sql_injection({
463
- 'Robert"); DROP TABLE users; --': 5,
464
- }, { can_fail: true });
465
- });
466
- });
467
- //# sourceMappingURL=user.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.test.js","sourceRoot":"","sources":["../../tests/user.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=view.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"view.test.d.ts","sourceRoot":"","sources":["../../tests/view.test.ts"],"names":[],"mappings":""}