@storyous/test-utils 2.2.0 → 2.2.1
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.d.ts +1 -0
- package/__tests__/testUtils.test.js +47 -0
- package/lib/mockTransport.d.ts +10 -0
- package/lib/mockTransport.js +53 -0
- package/lib/testUtils.d.ts +29 -0
- package/lib/testUtils.js +85 -0
- package/package.json +43 -42
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const assert = __importStar(require("assert"));
|
|
30
|
+
const koa_1 = __importDefault(require("koa"));
|
|
31
|
+
const mocha_1 = __importStar(require("mocha"));
|
|
32
|
+
const testUtils_1 = __importDefault(require("../lib/testUtils"));
|
|
33
|
+
testUtils_1.default.init({ mocha: mocha_1.default, app: () => new koa_1.default(), cleanDatabaseUrl: 'mongodb://127.0.0.1/testing' });
|
|
34
|
+
(0, mocha_1.describe)('packages/testUtils', async () => {
|
|
35
|
+
(0, mocha_1.it)('should do some request', async () => {
|
|
36
|
+
await testUtils_1.default.request().get('/').expect(404);
|
|
37
|
+
});
|
|
38
|
+
(0, mocha_1.it)('should getSent emails', async () => {
|
|
39
|
+
assert.deepStrictEqual(testUtils_1.default.getSentMails(), []);
|
|
40
|
+
});
|
|
41
|
+
(0, mocha_1.it)('should generate uniqueDatabase', () => {
|
|
42
|
+
testUtils_1.default.init({ mocha: mocha_1.default, app: () => new koa_1.default() });
|
|
43
|
+
assert.deepStrictEqual(testUtils_1.default.uniqueDatabase(), null);
|
|
44
|
+
assert.deepStrictEqual(testUtils_1.default.uniqueDatabase('mongodb://127.0.0.0:27017/test')?.startsWith('mongodb://127.0.0.0:27017/test___'), true);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdFV0aWxzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0VXRpbHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBQ2pDLDhDQUFzQjtBQUN0QiwrQ0FBNEM7QUFDNUMsaUVBQXlDO0FBRXpDLG1CQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFMLGVBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFHLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUM7QUFFakcsSUFBQSxnQkFBUSxFQUFDLG9CQUFvQixFQUFFLEtBQUssSUFBSSxFQUFFO0lBRXRDLElBQUEsVUFBRSxFQUFDLHdCQUF3QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3BDLE1BQU0sbUJBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxVQUFFLEVBQUMsdUJBQXVCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbkMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxtQkFBUyxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxVQUFFLEVBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1FBQ3RDLG1CQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFMLGVBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxtQkFBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxlQUFlLENBQ2xCLG1CQUFTLENBQUMsY0FBYyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsVUFBVSxDQUFDLG1DQUFtQyxDQUFDLEVBQzNHLElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Transport } from 'nodemailer';
|
|
2
|
+
import MailMessage from 'nodemailer/lib/mailer/mail-message';
|
|
3
|
+
export default class MockTransport implements Transport {
|
|
4
|
+
private _sentMail;
|
|
5
|
+
readonly name: 'Mock';
|
|
6
|
+
readonly version: '1.0.0';
|
|
7
|
+
getSentMail(): MailMessage<any>[];
|
|
8
|
+
send(mail: MailMessage<any>, callback: (err: Error | null, info?: any) => void): void;
|
|
9
|
+
private _validate;
|
|
10
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class MockTransport {
|
|
4
|
+
constructor() {
|
|
5
|
+
this._sentMail = [];
|
|
6
|
+
this._validate = (address) => {
|
|
7
|
+
if (!address) {
|
|
8
|
+
return new Error('Error validating address.');
|
|
9
|
+
}
|
|
10
|
+
if (typeof address !== 'string') {
|
|
11
|
+
address = address.address;
|
|
12
|
+
}
|
|
13
|
+
if (address.length > 254) {
|
|
14
|
+
return new Error('Error validating address.');
|
|
15
|
+
}
|
|
16
|
+
if (!address.match(/^[^@]+@.+\..+$/)) {
|
|
17
|
+
return new Error('Error validating address.');
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
getSentMail() {
|
|
23
|
+
return this._sentMail;
|
|
24
|
+
}
|
|
25
|
+
send(mail, callback) {
|
|
26
|
+
let err;
|
|
27
|
+
if (!mail.data.to) {
|
|
28
|
+
callback(new Error('I need to know who this email is being sent to :-('));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(mail.data.to)) {
|
|
32
|
+
for (let i = 0; i < mail.data.to.length; i++) {
|
|
33
|
+
const address = mail.data.to[i];
|
|
34
|
+
err = this._validate(address);
|
|
35
|
+
if (err !== null) {
|
|
36
|
+
callback(err);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
err = this._validate(mail.data.to);
|
|
43
|
+
if (err !== null) {
|
|
44
|
+
callback(err);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
this._sentMail.push(mail);
|
|
49
|
+
callback(null, { accepted: [mail.data.to] });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.default = MockTransport;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1RyYW5zcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vY2tUcmFuc3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxNQUFxQixhQUFhO0lBQWxDO1FBQ1ksY0FBUyxHQUF1QixFQUFFLENBQUM7UUF1Q25DLGNBQVMsR0FBRyxDQUFDLE9BQTBCLEVBQUUsRUFBRTtZQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE9BQU8sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQzthQUNqRDtZQUVELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO2dCQUM3QixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUM3QjtZQUVELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ3RCLE9BQU8sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQzthQUNqRDtZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7Z0JBQ2xDLE9BQU8sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQzthQUNqRDtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztJQUNOLENBQUM7SUFwREcsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRU0sSUFBSSxDQUFFLElBQXNCLEVBQUUsUUFBaUQ7UUFDbEYsSUFBSSxHQUFHLENBQUM7UUFFUixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDZixRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQyxDQUFDO1lBQzFFLE9BQU87U0FDVjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO29CQUNkLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDZCxPQUFPO2lCQUNWO2FBQ0o7U0FDSjthQUFNO1lBQ0gsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuQyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLE9BQU87YUFDVjtTQUNKO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FxQko7QUEzREQsZ0NBMkRDIn0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="koa-bodyparser" />
|
|
3
|
+
import http from 'http';
|
|
4
|
+
import Koa from 'koa';
|
|
5
|
+
import { MongoClientOptions } from 'mongodb';
|
|
6
|
+
import nodemailer from 'nodemailer';
|
|
7
|
+
import MailMessage from 'nodemailer/lib/mailer/mail-message';
|
|
8
|
+
import { SuperAgentTest } from 'supertest';
|
|
9
|
+
import MockTransport from './mockTransport';
|
|
10
|
+
interface TypeParams {
|
|
11
|
+
mocha: any;
|
|
12
|
+
app?: () => Koa | Promise<Koa>;
|
|
13
|
+
cleanDatabaseUrl?: string;
|
|
14
|
+
mailer?: {
|
|
15
|
+
_transporter: any;
|
|
16
|
+
};
|
|
17
|
+
cleanDatabaseOptions?: MongoClientOptions;
|
|
18
|
+
}
|
|
19
|
+
declare const testUtils: {
|
|
20
|
+
_app: http.Server | null;
|
|
21
|
+
_originalTransporter: nodemailer.Transporter<any> | undefined;
|
|
22
|
+
_mockTransporter: MockTransport | undefined;
|
|
23
|
+
init({ mocha, app, cleanDatabaseUrl, mailer, cleanDatabaseOptions, }: TypeParams): void;
|
|
24
|
+
getSentMails(): MailMessage<any>[];
|
|
25
|
+
request(): SuperAgentTest;
|
|
26
|
+
uniqueDatabase(mongodbUrl?: string | undefined): string | null;
|
|
27
|
+
cleanTestingDatabases(mongodbUrl: string, options?: MongoClientOptions): Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
export default testUtils;
|
package/lib/testUtils.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
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 http_1 = __importDefault(require("http"));
|
|
7
|
+
const mongodb_1 = require("mongodb");
|
|
8
|
+
const nodemailer_1 = __importDefault(require("nodemailer"));
|
|
9
|
+
const supertest_1 = __importDefault(require("supertest"));
|
|
10
|
+
const mockTransport_1 = __importDefault(require("./mockTransport"));
|
|
11
|
+
const testUtils = {
|
|
12
|
+
_app: null,
|
|
13
|
+
_originalTransporter: undefined,
|
|
14
|
+
_mockTransporter: undefined,
|
|
15
|
+
init({ mocha, app, cleanDatabaseUrl, mailer, cleanDatabaseOptions, }) {
|
|
16
|
+
const { afterEach, before, beforeEach } = mocha;
|
|
17
|
+
before(async () => {
|
|
18
|
+
if (cleanDatabaseUrl) {
|
|
19
|
+
await this.cleanTestingDatabases(cleanDatabaseUrl, cleanDatabaseOptions);
|
|
20
|
+
}
|
|
21
|
+
if (app) {
|
|
22
|
+
this._app = http_1.default.createServer((await app()).callback());
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
if (mailer) {
|
|
27
|
+
this._originalTransporter = mailer._transporter;
|
|
28
|
+
this._mockTransporter = new mockTransport_1.default();
|
|
29
|
+
mailer._transporter = nodemailer_1.default.createTransport(this._mockTransporter);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
afterEach(() => {
|
|
33
|
+
if (mailer) {
|
|
34
|
+
mailer._transporter = this._originalTransporter;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
getSentMails() {
|
|
39
|
+
if (!this._mockTransporter) {
|
|
40
|
+
throw new Error('The Email Transporter is not initialized yet!');
|
|
41
|
+
}
|
|
42
|
+
return this._mockTransporter.getSentMail();
|
|
43
|
+
},
|
|
44
|
+
request() {
|
|
45
|
+
if (!this._app) {
|
|
46
|
+
throw new Error('The app is not initialized yet!');
|
|
47
|
+
}
|
|
48
|
+
return supertest_1.default.agent(this._app);
|
|
49
|
+
},
|
|
50
|
+
uniqueDatabase(mongodbUrl) {
|
|
51
|
+
if (!mongodbUrl) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const parsed = new URL(mongodbUrl);
|
|
55
|
+
parsed.pathname = `${parsed.pathname}___${Date.now()}`;
|
|
56
|
+
return parsed.toString();
|
|
57
|
+
},
|
|
58
|
+
async cleanTestingDatabases(mongodbUrl, options = {}) {
|
|
59
|
+
const client = new mongodb_1.MongoClient(mongodbUrl, options);
|
|
60
|
+
await client.connect();
|
|
61
|
+
const db = client.db();
|
|
62
|
+
const { databaseName } = db;
|
|
63
|
+
if (!/testing/i.test(databaseName)) {
|
|
64
|
+
throw new Error('The database name has to contains the "testing" keyword.');
|
|
65
|
+
}
|
|
66
|
+
const postfixMatcher = /___([0-9]{12,})/;
|
|
67
|
+
const baseName = databaseName.replace(postfixMatcher, '');
|
|
68
|
+
const matcher = new RegExp(`^${baseName}(${postfixMatcher.source})?$`);
|
|
69
|
+
const adminDb = db.admin();
|
|
70
|
+
const { databases } = await adminDb.listDatabases({ nameOnly: true });
|
|
71
|
+
const maxAgeDate = new Date();
|
|
72
|
+
maxAgeDate.setMinutes(maxAgeDate.getMinutes() - 15);
|
|
73
|
+
await Promise.all(databases.map(async ({ name }) => {
|
|
74
|
+
const [match, , timestamp] = name.match(matcher) || [];
|
|
75
|
+
if (match && (!timestamp || new Date(parseInt(timestamp, 10)) < maxAgeDate)) {
|
|
76
|
+
// eslint-disable-next-line no-console
|
|
77
|
+
console.log(`DROPPING OLD TESTING database ${name}`);
|
|
78
|
+
await client.db(name).dropDatabase();
|
|
79
|
+
}
|
|
80
|
+
}));
|
|
81
|
+
await client.close();
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
exports.default = testUtils;
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQW9DO0FBRXBDLHFDQUEwRDtBQUMxRCw0REFBcUQ7QUFFckQsMERBQXNEO0FBQ3RELG9FQUE0QztBQVc1QyxNQUFNLFNBQVMsR0FBRztJQUNkLElBQUksRUFBaUIsSUFBSTtJQUN6QixvQkFBb0IsRUFBMkIsU0FBUztJQUN4RCxnQkFBZ0IsRUFBNkIsU0FBUztJQUV0RCxJQUFJLENBQUUsRUFDRixLQUFLLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxvQkFBb0IsR0FDakQ7UUFDVCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDaEQsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2QsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQzthQUM1RTtZQUVELElBQUksR0FBRyxFQUFFO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzNEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHVCQUFhLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxDQUFDLFlBQVksR0FBRyxvQkFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUMzRTtRQUNMLENBQUMsQ0FBQyxD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
|
package/package.json
CHANGED
|
@@ -1,42 +1,43 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@storyous/test-utils",
|
|
3
|
-
"version": "2.2.
|
|
4
|
-
"description": "",
|
|
5
|
-
"homepage": "https://github.com/Storyous/mono-utils#readme",
|
|
6
|
-
"license": "ISC",
|
|
7
|
-
"main": "lib/testUtils",
|
|
8
|
-
"scripts": {
|
|
9
|
-
"start": "tsc"
|
|
10
|
-
},
|
|
11
|
-
"mocha": {
|
|
12
|
-
"recursive": true,
|
|
13
|
-
"timeout": 15000,
|
|
14
|
-
"extension": [
|
|
15
|
-
"ts"
|
|
16
|
-
],
|
|
17
|
-
"exit": true,
|
|
18
|
-
"require": "ts-node/register"
|
|
19
|
-
},
|
|
20
|
-
"repository": {
|
|
21
|
-
"type": "git",
|
|
22
|
-
"url": "git+https://github.com/Storyous/mono-utils.git"
|
|
23
|
-
},
|
|
24
|
-
"bugs": {
|
|
25
|
-
"url": "https://github.com/Storyous/mono-utils/issues"
|
|
26
|
-
},
|
|
27
|
-
"publishConfig": {
|
|
28
|
-
"access": "public",
|
|
29
|
-
"registry": "https://registry.npmjs.org/"
|
|
30
|
-
},
|
|
31
|
-
"dependencies": {
|
|
32
|
-
"@types/koa": "^2.13.4",
|
|
33
|
-
"@types/lodash": "^4.14.182",
|
|
34
|
-
"@types/mocha": "^9.1.1",
|
|
35
|
-
"@types/nodemailer": "^6.4.4",
|
|
36
|
-
"@types/supertest": "^2.0.12",
|
|
37
|
-
"koa": "^2.13.4",
|
|
38
|
-
"mongodb": "^4.5.0",
|
|
39
|
-
"nodemailer": "^6.7.3",
|
|
40
|
-
"supertest": "^6.2.2"
|
|
41
|
-
}
|
|
42
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@storyous/test-utils",
|
|
3
|
+
"version": "2.2.1",
|
|
4
|
+
"description": "",
|
|
5
|
+
"homepage": "https://github.com/Storyous/mono-utils#readme",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"main": "lib/testUtils",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"start": "tsc"
|
|
10
|
+
},
|
|
11
|
+
"mocha": {
|
|
12
|
+
"recursive": true,
|
|
13
|
+
"timeout": 15000,
|
|
14
|
+
"extension": [
|
|
15
|
+
"ts"
|
|
16
|
+
],
|
|
17
|
+
"exit": true,
|
|
18
|
+
"require": "ts-node/register"
|
|
19
|
+
},
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+https://github.com/Storyous/mono-utils.git"
|
|
23
|
+
},
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/Storyous/mono-utils/issues"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public",
|
|
29
|
+
"registry": "https://registry.npmjs.org/"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@types/koa": "^2.13.4",
|
|
33
|
+
"@types/lodash": "^4.14.182",
|
|
34
|
+
"@types/mocha": "^9.1.1",
|
|
35
|
+
"@types/nodemailer": "^6.4.4",
|
|
36
|
+
"@types/supertest": "^2.0.12",
|
|
37
|
+
"koa": "^2.13.4",
|
|
38
|
+
"mongodb": "^4.5.0",
|
|
39
|
+
"nodemailer": "^6.7.3",
|
|
40
|
+
"supertest": "^6.2.2"
|
|
41
|
+
},
|
|
42
|
+
"gitHead": "c9c6f78b50104142147530d321636df74ae6f2cd"
|
|
43
|
+
}
|