@studiosonrai/nestjs-testfx 1.0.0 → 1.1.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/dist/src/helpers/app-test.helper.d.ts +9 -0
- package/dist/src/helpers/app-test.helper.js +19 -0
- package/dist/src/helpers/app-test.helper.js.map +1 -0
- package/dist/src/helpers/auth-test.helper.d.ts +28 -0
- package/dist/src/helpers/auth-test.helper.js +54 -0
- package/dist/src/helpers/auth-test.helper.js.map +1 -0
- package/dist/src/helpers/index.d.ts +2 -0
- package/dist/src/helpers/index.js +7 -1
- package/dist/src/helpers/index.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -3
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { INestApplication } from '@nestjs/common';
|
|
2
|
+
import { TestingModule } from '@nestjs/testing';
|
|
3
|
+
export interface CreateTestAppOptions {
|
|
4
|
+
whitelist?: boolean;
|
|
5
|
+
transform?: boolean;
|
|
6
|
+
forbidNonWhitelisted?: boolean;
|
|
7
|
+
beforeInit?: (app: INestApplication) => void | Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare function createTestApp(moduleFixture: TestingModule, options?: CreateTestAppOptions): Promise<INestApplication>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTestApp = createTestApp;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
async function createTestApp(moduleFixture, options = {}) {
|
|
6
|
+
const { whitelist = true, transform = true, forbidNonWhitelisted = true, beforeInit, } = options;
|
|
7
|
+
const app = moduleFixture.createNestApplication();
|
|
8
|
+
app.useGlobalPipes(new common_1.ValidationPipe({
|
|
9
|
+
whitelist,
|
|
10
|
+
transform,
|
|
11
|
+
forbidNonWhitelisted,
|
|
12
|
+
}));
|
|
13
|
+
if (beforeInit) {
|
|
14
|
+
await beforeInit(app);
|
|
15
|
+
}
|
|
16
|
+
await app.init();
|
|
17
|
+
return app;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=app-test.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-test.helper.js","sourceRoot":"","sources":["../../../src/helpers/app-test.helper.ts"],"names":[],"mappings":";;AAsEA,sCA2BC;AAjGD,2CAAkE;AAsE3D,KAAK,UAAU,aAAa,CACjC,aAA4B,EAC5B,UAAgC,EAAE;IAElC,MAAM,EACJ,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,IAAI,EAChB,oBAAoB,GAAG,IAAI,EAC3B,UAAU,GACX,GAAG,OAAO,CAAC;IAEZ,MAAM,GAAG,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;IAElD,GAAG,CAAC,cAAc,CAChB,IAAI,uBAAc,CAAC;QACjB,SAAS;QACT,SAAS;QACT,oBAAoB;KACrB,CAAC,CACH,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { INestApplication } from '@nestjs/common';
|
|
2
|
+
import { TestingModule } from '@nestjs/testing';
|
|
3
|
+
import { JwtService } from '@nestjs/jwt';
|
|
4
|
+
export interface TestJwtPayload {
|
|
5
|
+
sub: number;
|
|
6
|
+
email: string;
|
|
7
|
+
roles: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface AuthenticatedRequest {
|
|
10
|
+
get: (url: string) => unknown;
|
|
11
|
+
post: (url: string) => unknown;
|
|
12
|
+
put: (url: string) => unknown;
|
|
13
|
+
patch: (url: string) => unknown;
|
|
14
|
+
delete: (url: string) => unknown;
|
|
15
|
+
}
|
|
16
|
+
export interface AuthHelper {
|
|
17
|
+
asAdmin: () => AuthenticatedRequest;
|
|
18
|
+
asUser: (options?: Partial<TestJwtPayload>) => AuthenticatedRequest;
|
|
19
|
+
withToken: (token: string) => AuthenticatedRequest;
|
|
20
|
+
unauthenticated: () => unknown;
|
|
21
|
+
}
|
|
22
|
+
export interface AuthHelperConfig {
|
|
23
|
+
defaultAdmin?: TestJwtPayload;
|
|
24
|
+
defaultUser?: TestJwtPayload;
|
|
25
|
+
}
|
|
26
|
+
export declare function createTestToken(jwtService: JwtService, payload: TestJwtPayload): string;
|
|
27
|
+
export declare function getJwtService(module: TestingModule): JwtService;
|
|
28
|
+
export declare function createAuthHelper(app: INestApplication, jwtService: JwtService, config?: AuthHelperConfig): AuthHelper;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTestToken = createTestToken;
|
|
4
|
+
exports.getJwtService = getJwtService;
|
|
5
|
+
exports.createAuthHelper = createAuthHelper;
|
|
6
|
+
const jwt_1 = require("@nestjs/jwt");
|
|
7
|
+
function createTestToken(jwtService, payload) {
|
|
8
|
+
return jwtService.sign(payload);
|
|
9
|
+
}
|
|
10
|
+
function getJwtService(module) {
|
|
11
|
+
return module.get(jwt_1.JwtService);
|
|
12
|
+
}
|
|
13
|
+
function createAuthHelper(app, jwtService, config = {}) {
|
|
14
|
+
const request = require('supertest');
|
|
15
|
+
const defaultAdmin = config.defaultAdmin ?? {
|
|
16
|
+
sub: 1,
|
|
17
|
+
email: 'admin@test.com',
|
|
18
|
+
roles: ['admin'],
|
|
19
|
+
};
|
|
20
|
+
const defaultUser = config.defaultUser ?? {
|
|
21
|
+
sub: 2,
|
|
22
|
+
email: 'user@test.com',
|
|
23
|
+
roles: ['user'],
|
|
24
|
+
};
|
|
25
|
+
const createAuthenticatedRequest = (token) => {
|
|
26
|
+
const server = app.getHttpServer();
|
|
27
|
+
return {
|
|
28
|
+
get: (url) => request(server).get(url).set('Authorization', `Bearer ${token}`),
|
|
29
|
+
post: (url) => request(server).post(url).set('Authorization', `Bearer ${token}`),
|
|
30
|
+
put: (url) => request(server).put(url).set('Authorization', `Bearer ${token}`),
|
|
31
|
+
patch: (url) => request(server).patch(url).set('Authorization', `Bearer ${token}`),
|
|
32
|
+
delete: (url) => request(server).delete(url).set('Authorization', `Bearer ${token}`),
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
asAdmin: () => {
|
|
37
|
+
const token = jwtService.sign(defaultAdmin);
|
|
38
|
+
return createAuthenticatedRequest(token);
|
|
39
|
+
},
|
|
40
|
+
asUser: (options) => {
|
|
41
|
+
const payload = { ...defaultUser, ...options };
|
|
42
|
+
const token = jwtService.sign(payload);
|
|
43
|
+
return createAuthenticatedRequest(token);
|
|
44
|
+
},
|
|
45
|
+
withToken: (token) => {
|
|
46
|
+
return createAuthenticatedRequest(token);
|
|
47
|
+
},
|
|
48
|
+
unauthenticated: () => {
|
|
49
|
+
const server = app.getHttpServer();
|
|
50
|
+
return request(server);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=auth-test.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-test.helper.js","sourceRoot":"","sources":["../../../src/helpers/auth-test.helper.ts"],"names":[],"mappings":";;AAkGA,0CAKC;AAcD,sCAEC;AA2DD,4CA0DC;AA1OD,qCAAyC;AAgGzC,SAAgB,eAAe,CAC7B,UAAsB,EACtB,OAAuB;IAEvB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAcD,SAAgB,aAAa,CAAC,MAAqB;IACjD,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAU,CAAC,CAAC;AAChC,CAAC;AA2DD,SAAgB,gBAAgB,CAC9B,GAAqB,EACrB,UAAsB,EACtB,SAA2B,EAAE;IAI7B,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAA+B,CAAC;IAEnE,MAAM,YAAY,GAAmB,MAAM,CAAC,YAAY,IAAI;QAC1D,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,CAAC,OAAO,CAAC;KACjB,CAAC;IAEF,MAAM,WAAW,GAAmB,MAAM,CAAC,WAAW,IAAI;QACxD,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,CAAC,MAAM,CAAC;KAChB,CAAC;IAEF,MAAM,0BAA0B,GAAG,CAAC,KAAa,EAAwB,EAAE;QACzE,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAmC,CAAC;QACpE,OAAO;YACL,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC;YAClE,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CACpB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC;YACnE,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC;YAClE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CACrB,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC;YACpE,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CACtB,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC;SACtE,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5C,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,EAAE,CAAC,OAAiC,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;YAC3B,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,eAAe,EAAE,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAmC,CAAC;YACpE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1,3 @@
|
|
|
1
1
|
export { DatabaseTestHelper, DatabaseTestHelperConfig, } from './database-test.helper';
|
|
2
|
+
export { createTestApp, CreateTestAppOptions } from './app-test.helper';
|
|
3
|
+
export { createAuthHelper, createTestToken, getJwtService, TestJwtPayload, AuthHelper, AuthenticatedRequest, AuthHelperConfig, } from './auth-test.helper';
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DatabaseTestHelper = void 0;
|
|
3
|
+
exports.getJwtService = exports.createTestToken = exports.createAuthHelper = exports.createTestApp = exports.DatabaseTestHelper = void 0;
|
|
4
4
|
var database_test_helper_1 = require("./database-test.helper");
|
|
5
5
|
Object.defineProperty(exports, "DatabaseTestHelper", { enumerable: true, get: function () { return database_test_helper_1.DatabaseTestHelper; } });
|
|
6
|
+
var app_test_helper_1 = require("./app-test.helper");
|
|
7
|
+
Object.defineProperty(exports, "createTestApp", { enumerable: true, get: function () { return app_test_helper_1.createTestApp; } });
|
|
8
|
+
var auth_test_helper_1 = require("./auth-test.helper");
|
|
9
|
+
Object.defineProperty(exports, "createAuthHelper", { enumerable: true, get: function () { return auth_test_helper_1.createAuthHelper; } });
|
|
10
|
+
Object.defineProperty(exports, "createTestToken", { enumerable: true, get: function () { return auth_test_helper_1.createTestToken; } });
|
|
11
|
+
Object.defineProperty(exports, "getJwtService", { enumerable: true, get: function () { return auth_test_helper_1.getJwtService; } });
|
|
6
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":";;;AAMA,+DAGgC;AAF9B,0HAAA,kBAAkB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":";;;AAMA,+DAGgC;AAF9B,0HAAA,kBAAkB,OAAA;AAIpB,qDAAwE;AAA/D,gHAAA,aAAa,OAAA;AAEtB,uDAQ4B;AAP1B,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AACf,iHAAA,aAAa,OAAA"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { DatabaseTestHelper, DatabaseTestHelperConfig, } from './helpers';
|
|
1
|
+
export { DatabaseTestHelper, DatabaseTestHelperConfig, createTestApp, CreateTestAppOptions, createAuthHelper, createTestToken, getJwtService, TestJwtPayload, AuthHelper, AuthenticatedRequest, AuthHelperConfig, } from './helpers';
|
|
2
2
|
export { BaseFactory, EntityFactory, FactoryOptions, ExampleUserFactory, ExampleOrderFactory, ExampleFactoryManager, } from './factories';
|
|
3
3
|
export { EntityComparator, ComparisonOptions, ComparisonResult, EntityEquivalentMatcher, createEntityEquivalentMatcher, } from './matchers';
|
|
4
4
|
export { RoleFixture, ROLE_FIXTURES, getAllRoleFixtures, getRoleById, getRoleByName, StatusFixture, ORDER_STATUS_FIXTURES, getAllOrderStatusFixtures, getOrderStatusByCode, ExampleFixtureLoader, } from './fixtures';
|
package/dist/src/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExampleFixtureLoader = exports.getOrderStatusByCode = exports.getAllOrderStatusFixtures = exports.ORDER_STATUS_FIXTURES = exports.getRoleByName = exports.getRoleById = exports.getAllRoleFixtures = exports.ROLE_FIXTURES = exports.createEntityEquivalentMatcher = exports.EntityComparator = exports.ExampleFactoryManager = exports.ExampleOrderFactory = exports.ExampleUserFactory = exports.BaseFactory = exports.DatabaseTestHelper = void 0;
|
|
3
|
+
exports.ExampleFixtureLoader = exports.getOrderStatusByCode = exports.getAllOrderStatusFixtures = exports.ORDER_STATUS_FIXTURES = exports.getRoleByName = exports.getRoleById = exports.getAllRoleFixtures = exports.ROLE_FIXTURES = exports.createEntityEquivalentMatcher = exports.EntityComparator = exports.ExampleFactoryManager = exports.ExampleOrderFactory = exports.ExampleUserFactory = exports.BaseFactory = exports.getJwtService = exports.createTestToken = exports.createAuthHelper = exports.createTestApp = exports.DatabaseTestHelper = void 0;
|
|
4
4
|
var helpers_1 = require("./helpers");
|
|
5
5
|
Object.defineProperty(exports, "DatabaseTestHelper", { enumerable: true, get: function () { return helpers_1.DatabaseTestHelper; } });
|
|
6
|
+
Object.defineProperty(exports, "createTestApp", { enumerable: true, get: function () { return helpers_1.createTestApp; } });
|
|
7
|
+
Object.defineProperty(exports, "createAuthHelper", { enumerable: true, get: function () { return helpers_1.createAuthHelper; } });
|
|
8
|
+
Object.defineProperty(exports, "createTestToken", { enumerable: true, get: function () { return helpers_1.createTestToken; } });
|
|
9
|
+
Object.defineProperty(exports, "getJwtService", { enumerable: true, get: function () { return helpers_1.getJwtService; } });
|
|
6
10
|
var factories_1 = require("./factories");
|
|
7
11
|
Object.defineProperty(exports, "BaseFactory", { enumerable: true, get: function () { return factories_1.BaseFactory; } });
|
|
8
12
|
Object.defineProperty(exports, "ExampleUserFactory", { enumerable: true, get: function () { return factories_1.ExampleUserFactory; } });
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AA2CA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AA2CA,qCAYmB;AAXjB,6GAAA,kBAAkB,OAAA;AAElB,wGAAA,aAAa,OAAA;AAEb,2GAAA,gBAAgB,OAAA;AAChB,0GAAA,eAAe,OAAA;AACf,wGAAA,aAAa,OAAA;AAQf,yCAOqB;AANnB,wGAAA,WAAW,OAAA;AAGX,+GAAA,kBAAkB,OAAA;AAClB,gHAAA,mBAAmB,OAAA;AACnB,kHAAA,qBAAqB,OAAA;AAIvB,uCAMoB;AALlB,4GAAA,gBAAgB,OAAA;AAIhB,yHAAA,6BAA6B,OAAA;AAI/B,uCAWoB;AATlB,yGAAA,aAAa,OAAA;AACb,8GAAA,kBAAkB,OAAA;AAClB,uGAAA,WAAW,OAAA;AACX,yGAAA,aAAa,OAAA;AAEb,iHAAA,qBAAqB,OAAA;AACrB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA"}
|