@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.
@@ -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;
@@ -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.0",
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
+ }