@storyous/test-utils 1.0.4 → 2.0.0
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/__tests__/testUtils.test.js +4 -4
- package/__tests__/testUtils.test.ts +3 -3
- package/lib/testUtils.js +6 -6
- package/lib/testUtils.ts +17 -8
- package/package.json +2 -3
|
@@ -28,9 +28,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const assert = __importStar(require("assert"));
|
|
30
30
|
const koa_1 = __importDefault(require("koa"));
|
|
31
|
-
const mocha_1 = require("mocha");
|
|
31
|
+
const mocha_1 = __importStar(require("mocha"));
|
|
32
32
|
const testUtils_1 = __importDefault(require("../lib/testUtils"));
|
|
33
|
-
testUtils_1.default.init(() => new koa_1.default(), 'mongodb://127.0.0.1/testing');
|
|
33
|
+
testUtils_1.default.init({ mocha: mocha_1.default, app: () => new koa_1.default(), cleanDatabaseUrl: 'mongodb://127.0.0.1/testing' });
|
|
34
34
|
(0, mocha_1.describe)('packages/testUtils', async () => {
|
|
35
35
|
(0, mocha_1.it)('should do some request', async () => {
|
|
36
36
|
await testUtils_1.default.request().get('/').expect(404);
|
|
@@ -39,9 +39,9 @@ testUtils_1.default.init(() => new koa_1.default(), 'mongodb://127.0.0.1/testing
|
|
|
39
39
|
assert.deepStrictEqual(testUtils_1.default.getSentMails(), []);
|
|
40
40
|
});
|
|
41
41
|
(0, mocha_1.it)('should generate uniqueDatabase', () => {
|
|
42
|
-
testUtils_1.default.init(() => new koa_1.default());
|
|
42
|
+
testUtils_1.default.init({ mocha: mocha_1.default, app: () => new koa_1.default() });
|
|
43
43
|
assert.deepStrictEqual(testUtils_1.default.uniqueDatabase(), null);
|
|
44
44
|
assert.deepStrictEqual(testUtils_1.default.uniqueDatabase('mongodb://127.0.0.0:27017/test')?.startsWith('mongodb://127.0.0.0:27017/test___'), true);
|
|
45
45
|
});
|
|
46
46
|
});
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdFV0aWxzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0VXRpbHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBQ2pDLDhDQUFzQjtBQUN0QiwrQ0FBNEM7QUFDNUMsaUVBQXlDO0FBRXpDLG1CQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFMLGVBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFHLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUM7QUFFakcsSUFBQSxnQkFBUSxFQUFDLG9CQUFvQixFQUFFLEtBQUssSUFBSSxFQUFFO0lBRXRDLElBQUEsVUFBRSxFQUFDLHdCQUF3QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3BDLE1BQU0sbUJBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxVQUFFLEVBQUMsdUJBQXVCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbkMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxtQkFBUyxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxVQUFFLEVBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1FBQ3RDLG1CQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFMLGVBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxtQkFBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxlQUFlLENBQ2xCLG1CQUFTLENBQUMsY0FBYyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsVUFBVSxDQUFDLG1DQUFtQyxDQUFDLEVBQzNHLElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as assert from 'assert';
|
|
2
2
|
import Koa from 'koa';
|
|
3
|
-
import { describe, it } from 'mocha';
|
|
3
|
+
import mocha, { describe, it } from 'mocha';
|
|
4
4
|
import testUtils from '../lib/testUtils';
|
|
5
5
|
|
|
6
|
-
testUtils.init(() => new Koa(), 'mongodb://127.0.0.1/testing');
|
|
6
|
+
testUtils.init({ mocha, app: () => new Koa(), cleanDatabaseUrl: 'mongodb://127.0.0.1/testing' });
|
|
7
7
|
|
|
8
8
|
describe('packages/testUtils', async () => {
|
|
9
9
|
|
|
@@ -16,7 +16,7 @@ describe('packages/testUtils', async () => {
|
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
it('should generate uniqueDatabase', () => {
|
|
19
|
-
testUtils.init(() => new Koa());
|
|
19
|
+
testUtils.init({ mocha, app: () => new Koa() });
|
|
20
20
|
assert.deepStrictEqual(testUtils.uniqueDatabase(), null);
|
|
21
21
|
assert.deepStrictEqual(
|
|
22
22
|
testUtils.uniqueDatabase('mongodb://127.0.0.0:27017/test')?.startsWith('mongodb://127.0.0.0:27017/test___'),
|
package/lib/testUtils.js
CHANGED
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const http_1 = __importDefault(require("http"));
|
|
7
|
-
const mocha_1 = require("mocha");
|
|
8
7
|
const mongodb_1 = require("mongodb");
|
|
9
8
|
const nodemailer_1 = __importDefault(require("nodemailer"));
|
|
10
9
|
const supertest_1 = __importDefault(require("supertest"));
|
|
@@ -13,8 +12,9 @@ const testUtils = {
|
|
|
13
12
|
_app: null,
|
|
14
13
|
_originalTransporter: undefined,
|
|
15
14
|
_mockTransporter: undefined,
|
|
16
|
-
init(app, cleanDatabaseUrl, mailer) {
|
|
17
|
-
|
|
15
|
+
init({ mocha, app, cleanDatabaseUrl, mailer, }) {
|
|
16
|
+
const { afterEach, before, beforeEach } = mocha;
|
|
17
|
+
before(async () => {
|
|
18
18
|
if (cleanDatabaseUrl) {
|
|
19
19
|
await this.cleanTestingDatabases(cleanDatabaseUrl);
|
|
20
20
|
}
|
|
@@ -22,14 +22,14 @@ const testUtils = {
|
|
|
22
22
|
this._app = http_1.default.createServer((await app()).callback());
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
|
|
25
|
+
beforeEach(() => {
|
|
26
26
|
if (mailer) {
|
|
27
27
|
this._originalTransporter = mailer._transporter;
|
|
28
28
|
this._mockTransporter = new mockTransport_1.default();
|
|
29
29
|
mailer._transporter = nodemailer_1.default.createTransport(this._mockTransporter);
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
|
-
|
|
32
|
+
afterEach(() => {
|
|
33
33
|
if (mailer) {
|
|
34
34
|
mailer._transporter = this._originalTransporter;
|
|
35
35
|
}
|
|
@@ -82,4 +82,4 @@ const testUtils = {
|
|
|
82
82
|
},
|
|
83
83
|
};
|
|
84
84
|
exports.default = testUtils;
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQW9DO0FBRXBDLHFDQUFzQztBQUN0Qyw0REFBcUQ7QUFFckQsMERBQXNEO0FBQ3RELG9FQUE0QztBQVM1QyxNQUFNLFNBQVMsR0FBRztJQUNkLElBQUksRUFBaUIsSUFBSTtJQUN6QixvQkFBb0IsRUFBMkIsU0FBUztJQUN4RCxnQkFBZ0IsRUFBNkIsU0FBUztJQUV0RCxJQUFJLENBQUUsRUFDRixLQUFLLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sR0FDM0I7UUFDVCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDaEQsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2QsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUN0RDtZQUVELElBQUksR0FBRyxFQUFFO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzNEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHVCQUFhLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxDQUFDLFlBQVksR0FBRyxvQkFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUMzRTtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLEdBQUcs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
|
package/lib/testUtils.ts
CHANGED
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
import http, { Server } from 'http';
|
|
2
2
|
import Koa from 'koa';
|
|
3
|
-
import { afterEach, before, beforeEach } from 'mocha';
|
|
4
3
|
import { MongoClient } from 'mongodb';
|
|
5
4
|
import nodemailer, { Transporter } from 'nodemailer';
|
|
6
5
|
import MailMessage from 'nodemailer/lib/mailer/mail-message';
|
|
7
6
|
import supertest, { SuperAgentTest } from 'supertest';
|
|
8
7
|
import MockTransport from './mockTransport';
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
interface TypeParams {
|
|
10
|
+
mocha: any,
|
|
11
|
+
app?: () => Koa,
|
|
12
|
+
cleanDatabaseUrl?: string,
|
|
13
|
+
mailer?: { _transporter: any }
|
|
14
|
+
}
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
const testUtils = {
|
|
17
|
+
_app: <Server | null>null,
|
|
18
|
+
_originalTransporter: <Transporter | undefined>undefined,
|
|
19
|
+
_mockTransporter: <MockTransport | undefined>undefined,
|
|
20
|
+
|
|
21
|
+
init ({
|
|
22
|
+
mocha, app, cleanDatabaseUrl, mailer,
|
|
23
|
+
}: TypeParams) {
|
|
24
|
+
const { afterEach, before, beforeEach } = mocha;
|
|
16
25
|
before(async () => {
|
|
17
26
|
if (cleanDatabaseUrl) {
|
|
18
27
|
await this.cleanTestingDatabases(cleanDatabaseUrl);
|
|
@@ -53,7 +62,7 @@ const testUtils = {
|
|
|
53
62
|
return supertest.agent(this._app);
|
|
54
63
|
},
|
|
55
64
|
|
|
56
|
-
uniqueDatabase (mongodbUrl?: string): string|null {
|
|
65
|
+
uniqueDatabase (mongodbUrl?: string): string | null {
|
|
57
66
|
|
|
58
67
|
if (!mongodbUrl) {
|
|
59
68
|
return null;
|
|
@@ -85,7 +94,7 @@ const testUtils = {
|
|
|
85
94
|
maxAgeDate.setMinutes(maxAgeDate.getMinutes() - 15);
|
|
86
95
|
|
|
87
96
|
await Promise.all(databases.map(async ({ name }) => {
|
|
88
|
-
const [match
|
|
97
|
+
const [match, , timestamp] = name.match(matcher) || [];
|
|
89
98
|
if (match && (!timestamp || new Date(parseInt(timestamp, 10)) < maxAgeDate)) {
|
|
90
99
|
// eslint-disable-next-line no-console
|
|
91
100
|
console.log(`DROPPING OLD TESTING database ${name}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storyous/test-utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"homepage": "https://github.com/Storyous/mono-utils#readme",
|
|
6
6
|
"license": "ISC",
|
|
@@ -35,10 +35,9 @@
|
|
|
35
35
|
"@types/nodemailer": "^6.4.4",
|
|
36
36
|
"@types/supertest": "^2.0.12",
|
|
37
37
|
"koa": "^2.13.4",
|
|
38
|
-
"mocha": "^9.2.2",
|
|
39
38
|
"mongodb": "^4.5.0",
|
|
40
39
|
"nodemailer": "^6.7.3",
|
|
41
40
|
"supertest": "^6.2.2"
|
|
42
41
|
},
|
|
43
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "4ea95d722ba6e85e9b6939128a2d37860fbb00f1"
|
|
44
43
|
}
|