prostgles-server 4.2.8 → 4.2.10
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/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/DataValidator.js +3 -1
- package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
- package/lib/DboBuilder/TableHandler/DataValidator.ts +3 -1
- package/package.json +1 -1
- package/tests/client/index.ts +8 -8
- package/tests/client/package-lock.json +23 -7
- package/tests/client/package.json +2 -2
- package/tests/clientFileTests.spec.ts +103 -0
- package/tests/clientOnlyQueries.spec.ts +609 -0
- package/tests/clientRestApi.spec.ts +82 -0
- package/tests/isomorphicQueries.spec.ts +1199 -0
- package/tests/server/index.ts +20 -17
- package/tests/server/package-lock.json +1 -1
- package/tests/server/package.json +2 -2
- package/tests/server/testPublish.ts +3 -2
- package/tests/serverOnlyQueries.spec.ts +53 -0
- package/tests/client_files.ts +0 -98
- package/tests/client_only_queries.ts +0 -581
- package/tests/client_rest_api.ts +0 -79
- package/tests/isomorphic_queries.ts +0 -1194
- package/tests/server_only_queries.ts +0 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataValidator.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/DataValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAA+F,MAAM,sBAAsB,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAO,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI/D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC;CACjB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,EAAE,CAAC;CACb,CAAA;AACD,KAAK,YAAY,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAE7D,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,iBAAiB,EAAE;QACjB,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC;QACrC,QAAQ,EAAE,SAAS,GAAG,gBAAgB,CAAC;KACxC,CAAA;CACF,CAAA;AAED,qBAAa,aAAa;IACxB,YAAY,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;gBACf,YAAY,EAAE,YAAY;IAItC,KAAK,SAAgB,aAAa;;;;;;OAcjC;CACF;AA2DD;;;;GAIG;AACH,eAAO,MAAM,cAAc,+FAA8G,eAAe;;;EA0BvJ,CAAA;
|
|
1
|
+
{"version":3,"file":"DataValidator.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/DataValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAA+F,MAAM,sBAAsB,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAO,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI/D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC;CACjB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,EAAE,CAAC;CACb,CAAA;AACD,KAAK,YAAY,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAE7D,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,iBAAiB,EAAE;QACjB,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC;QACrC,QAAQ,EAAE,SAAS,GAAG,gBAAgB,CAAC;KACxC,CAAA;CACF,CAAA;AAED,qBAAa,aAAa;IACxB,YAAY,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;gBACf,YAAY,EAAE,YAAY;IAItC,KAAK,SAAgB,aAAa;;;;;;OAcjC;CACF;AA2DD;;;;GAIG;AACH,eAAO,MAAM,cAAc,+FAA8G,eAAe;;;EA0BvJ,CAAA;AA6LD,qBAAa,MAAM;IACjB,IAAI,EAAE;QACJ,OAAO,EAAE,UAAU,EAAE,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;gBAEU,OAAO,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM;CA8ErD"}
|
|
@@ -114,14 +114,16 @@ const getValidatedRowFieldData = async ({ allowedCols, rows, validationOptions,
|
|
|
114
114
|
}
|
|
115
115
|
const rowFieldData = await Promise.all(rows.map(async (nonvalidatedRow) => {
|
|
116
116
|
let row = (0, dist_1.pickKeys)(nonvalidatedRow, allowedCols);
|
|
117
|
+
const initialRowKeys = Object.keys(row);
|
|
117
118
|
if (validationOptions.validate) {
|
|
118
119
|
if (!validationOptions.localParams) {
|
|
119
120
|
throw "localParams missing for validate";
|
|
120
121
|
}
|
|
121
122
|
row = await validationOptions.validate({ row, dbx: dbTx, localParams: validationOptions.localParams });
|
|
122
123
|
}
|
|
124
|
+
const keysAddedDuringValidate = Object.keys(row).filter(newKey => !initialRowKeys.includes(newKey));
|
|
123
125
|
const getColumn = (fieldName) => {
|
|
124
|
-
if (!allowedCols.includes(fieldName)) {
|
|
126
|
+
if (!allowedCols.concat(keysAddedDuringValidate).includes(fieldName)) {
|
|
125
127
|
throw `Unexpected/Dissallowed column name: ${fieldName}`;
|
|
126
128
|
}
|
|
127
129
|
const column = tableHandler.columns.find(c => c.name === fieldName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataValidator.js","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/DataValidator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DataValidator.js","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/DataValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -168,15 +168,17 @@ const getValidatedRowFieldData = async ({ allowedCols, rows, validationOptions,
|
|
|
168
168
|
rows.map(async nonvalidatedRow => {
|
|
169
169
|
|
|
170
170
|
let row = pickKeys(nonvalidatedRow, allowedCols);
|
|
171
|
+
const initialRowKeys = Object.keys(row);
|
|
171
172
|
if (validationOptions.validate) {
|
|
172
173
|
if(!validationOptions.localParams){
|
|
173
174
|
throw "localParams missing for validate";
|
|
174
175
|
}
|
|
175
176
|
row = await validationOptions.validate({ row, dbx: dbTx, localParams: validationOptions.localParams });
|
|
176
177
|
}
|
|
178
|
+
const keysAddedDuringValidate = Object.keys(row).filter(newKey => !initialRowKeys.includes(newKey));
|
|
177
179
|
|
|
178
180
|
const getColumn = (fieldName: string) => {
|
|
179
|
-
if (!allowedCols.includes(fieldName)) {
|
|
181
|
+
if (!allowedCols.concat(keysAddedDuringValidate).includes(fieldName)) {
|
|
180
182
|
throw `Unexpected/Dissallowed column name: ${fieldName}`;
|
|
181
183
|
}
|
|
182
184
|
const column = tableHandler.columns.find(c => c.name === fieldName);
|
package/package.json
CHANGED
package/tests/client/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import prostgles from "prostgles-client";
|
|
2
2
|
import io from "socket.io-client";
|
|
3
3
|
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
4
|
+
import { isomorphicQueries } from "../isomorphicQueries.spec";
|
|
5
|
+
import { clientOnlyQueries } from "../clientOnlyQueries.spec";
|
|
6
|
+
import { clientRestApi } from "../clientRestApi.spec";
|
|
7
|
+
import { clientFileTests } from "../clientFileTests.spec";
|
|
8
8
|
import { InitOptions } from "prostgles-client/dist/prostgles";
|
|
9
9
|
export { DBHandlerClient, Auth } from "prostgles-client/dist/prostgles";
|
|
10
10
|
|
|
@@ -24,19 +24,19 @@ type ClientTestSpec = {
|
|
|
24
24
|
const tests: Record<string, ClientTestSpec> = {
|
|
25
25
|
main: {
|
|
26
26
|
onRun: async (db, methods, tableSchema, auth) => {
|
|
27
|
-
await
|
|
28
|
-
await
|
|
27
|
+
await isomorphicQueries(db, log);
|
|
28
|
+
await clientOnlyQueries(db, auth, log, methods, tableSchema, TEST_NAME);
|
|
29
29
|
},
|
|
30
30
|
},
|
|
31
31
|
files: {
|
|
32
32
|
onRun: async (db, methods, tableSchema, auth) => {
|
|
33
|
-
await
|
|
33
|
+
await clientFileTests(db, auth, log, methods, tableSchema)
|
|
34
34
|
},
|
|
35
35
|
|
|
36
36
|
},
|
|
37
37
|
rest_api: {
|
|
38
38
|
onRun: async (db, methods, tableSchema, auth) => {
|
|
39
|
-
await
|
|
39
|
+
await clientRestApi(db, auth, log, methods, tableSchema, TEST_NAME);
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
};
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@types/node": "^
|
|
12
|
+
"@types/node": "^20.9.2",
|
|
13
13
|
"prostgles-client": "^4.0.69",
|
|
14
14
|
"prostgles-types": "^4.0.51",
|
|
15
15
|
"socket.io-client": "^4.7.1"
|
|
@@ -24,9 +24,12 @@
|
|
|
24
24
|
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
|
|
25
25
|
},
|
|
26
26
|
"node_modules/@types/node": {
|
|
27
|
-
"version": "
|
|
28
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-
|
|
29
|
-
"integrity": "sha512-
|
|
27
|
+
"version": "20.11.5",
|
|
28
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz",
|
|
29
|
+
"integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==",
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"undici-types": "~5.26.4"
|
|
32
|
+
}
|
|
30
33
|
},
|
|
31
34
|
"node_modules/debug": {
|
|
32
35
|
"version": "4.3.4",
|
|
@@ -137,6 +140,11 @@
|
|
|
137
140
|
"node": ">=14.17"
|
|
138
141
|
}
|
|
139
142
|
},
|
|
143
|
+
"node_modules/undici-types": {
|
|
144
|
+
"version": "5.26.5",
|
|
145
|
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
|
|
146
|
+
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
|
|
147
|
+
},
|
|
140
148
|
"node_modules/ws": {
|
|
141
149
|
"version": "8.11.0",
|
|
142
150
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
|
|
@@ -173,9 +181,12 @@
|
|
|
173
181
|
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
|
|
174
182
|
},
|
|
175
183
|
"@types/node": {
|
|
176
|
-
"version": "
|
|
177
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-
|
|
178
|
-
"integrity": "sha512-
|
|
184
|
+
"version": "20.11.5",
|
|
185
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz",
|
|
186
|
+
"integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==",
|
|
187
|
+
"requires": {
|
|
188
|
+
"undici-types": "~5.26.4"
|
|
189
|
+
}
|
|
179
190
|
},
|
|
180
191
|
"debug": {
|
|
181
192
|
"version": "4.3.4",
|
|
@@ -254,6 +265,11 @@
|
|
|
254
265
|
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
|
|
255
266
|
"dev": true
|
|
256
267
|
},
|
|
268
|
+
"undici-types": {
|
|
269
|
+
"version": "5.26.5",
|
|
270
|
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
|
|
271
|
+
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
|
|
272
|
+
},
|
|
257
273
|
"ws": {
|
|
258
274
|
"version": "8.11.0",
|
|
259
275
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"start": "tsc-watch --onSuccess \"node dist/client/index.js\"",
|
|
8
8
|
"dev": "NOSTOP=true npm start",
|
|
9
9
|
"build": "rm -rf ./node_modules/* && rm -rf ./dist/* && npm i && tsc",
|
|
10
|
-
"test": "node
|
|
10
|
+
"test": "node --test --experimental-test-coverage dist/client/index.js"
|
|
11
11
|
},
|
|
12
12
|
"author": "",
|
|
13
13
|
"license": "ISC",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@types/node": "^
|
|
15
|
+
"@types/node": "^20.9.2",
|
|
16
16
|
"prostgles-client": "^4.0.69",
|
|
17
17
|
"prostgles-types": "^4.0.51",
|
|
18
18
|
"socket.io-client": "^4.7.1"
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
|
|
2
|
+
import { DBSchemaTable } from "prostgles-types";
|
|
3
|
+
import type { Auth, DBHandlerClient } from "./client/index";
|
|
4
|
+
import { tryRun } from './isomorphicQueries.spec';
|
|
5
|
+
import { strict as assert } from 'assert';
|
|
6
|
+
import fs from "fs";
|
|
7
|
+
import { describe, test } from "node:test";
|
|
8
|
+
|
|
9
|
+
export const clientFileTests = async (db: DBHandlerClient, auth: Auth, log: (...args: any[]) => any, methods, tableSchema: DBSchemaTable[]) => {
|
|
10
|
+
|
|
11
|
+
await describe("clientFileTests", async () => {
|
|
12
|
+
|
|
13
|
+
const fileFolder = `${__dirname}/../../server/dist/server/media/`;
|
|
14
|
+
const getFiles = () => db.sql("SELECT id, original_name FROM files", { }, { returnType: "rows" })
|
|
15
|
+
await db.sql(`
|
|
16
|
+
ALTER TABLE users_public_info
|
|
17
|
+
DROP CONSTRAINT "users_public_info_avatar_fkey";
|
|
18
|
+
|
|
19
|
+
ALTER TABLE "users_public_info"
|
|
20
|
+
ADD FOREIGN KEY ("avatar")
|
|
21
|
+
REFERENCES "files" ("id")
|
|
22
|
+
ON DELETE SET NULL
|
|
23
|
+
`, { })
|
|
24
|
+
const initialFiles = await getFiles();
|
|
25
|
+
|
|
26
|
+
await test("Files table is present", async () => {
|
|
27
|
+
const files = await db.files.find!();
|
|
28
|
+
assert.deepStrictEqual(files, []);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
const file = {
|
|
33
|
+
data: Buffer.from("This is a string", "utf-8"),
|
|
34
|
+
name: "sample_file.txt"
|
|
35
|
+
};
|
|
36
|
+
let insertedFile;
|
|
37
|
+
await test("Insert file from nested insert", async () => {
|
|
38
|
+
const nestedInsert = await db.users_public_info.insert!({ name: "somename.txt", avatar: file }, { returning: "*" });
|
|
39
|
+
const files = await db.files.find!();
|
|
40
|
+
assert.equal(files.length, 1);
|
|
41
|
+
assert.equal(files[0].id, nestedInsert.avatar.id);
|
|
42
|
+
assert.equal(files[0].original_name, file.name);
|
|
43
|
+
const initialFileStr = fs.readFileSync(fileFolder + files[0].name).toString('utf8');
|
|
44
|
+
assert.equal(file.data.toString(), initialFileStr);
|
|
45
|
+
insertedFile = files[0]
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
await test("Cannot Insert file directly", async () => {
|
|
49
|
+
try {
|
|
50
|
+
await db.files.insert!(file, { returning: "*" });
|
|
51
|
+
throw "Should not be able to insert files directly"
|
|
52
|
+
} catch (err){
|
|
53
|
+
assert.equal(err.message.startsWith("Direct inserts not allowed"), true);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
await test("Can update allowed files directly", async () => {
|
|
58
|
+
const newData = {
|
|
59
|
+
data: Buffer.from("aa", "utf-8"),
|
|
60
|
+
name: "a.txt"
|
|
61
|
+
}
|
|
62
|
+
await db.files.update!({ id: insertedFile.id }, newData);
|
|
63
|
+
const newFiles = await db.files.find!();
|
|
64
|
+
assert.equal(newFiles.length, 1);
|
|
65
|
+
const [newFile] = newFiles;
|
|
66
|
+
assert.equal(newFile?.original_name, newData.name);
|
|
67
|
+
assert.equal(newFile.id, insertedFile.id);
|
|
68
|
+
assert.equal(
|
|
69
|
+
fs.readFileSync(fileFolder + newFile.name).toString('utf8').toString(),
|
|
70
|
+
newData.data.toString()
|
|
71
|
+
);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
await test("Can insert allowed files through a nested update", async () => {
|
|
75
|
+
|
|
76
|
+
await db.files.delete!();
|
|
77
|
+
const user = await db.users_public_info.findOne!();
|
|
78
|
+
const newData = {
|
|
79
|
+
data: Buffer.from("nestedupdate", "utf-8"),
|
|
80
|
+
name: "nestedupdate.txt"
|
|
81
|
+
}
|
|
82
|
+
const d = await db.users_public_info.update!({ id: user?.id }, { avatar: newData }, { returning: "*" });
|
|
83
|
+
const avatarFile = await db.files.findOne!({ id: d?.at(0).avatar.id });
|
|
84
|
+
const initialFileStr = fs.readFileSync(fileFolder + avatarFile!.name).toString('utf8');
|
|
85
|
+
assert.equal(newData.data.toString(), initialFileStr);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
await test("Can delete only allowed files directly", async () => {
|
|
89
|
+
const users = await db.users_public_info.find!();
|
|
90
|
+
for await(const user of users){
|
|
91
|
+
await db.files.delete!({ id: user.avatar.id });
|
|
92
|
+
await db.users_public_info.delete!({ id: user.id });
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
await db.users_public_info.delete!();
|
|
96
|
+
const files = await db.files.find!();
|
|
97
|
+
assert.deepStrictEqual(files, []);
|
|
98
|
+
const latestFiles = await getFiles()
|
|
99
|
+
assert.equal(initialFiles.length, latestFiles.length);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
});
|
|
103
|
+
}
|