Skip to content

Commit d2c40a9

Browse files
committed
better typing in tests
1 parent ddd894f commit d2c40a9

File tree

4 files changed

+28
-22
lines changed

4 files changed

+28
-22
lines changed

template/services/api.service.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Context, ServiceSchema } from "moleculer";
2-
2+
import type { Server as HttpServer } from 'http';
33
import ApiGateway from "moleculer-web";
44
import type { ApiSettingsSchema, Route, IncomingRequest, GatewayResponse } from "moleculer-web";
55
{{#apiIO}}
@@ -21,7 +21,12 @@ interface Meta {
2121
user?: MetaUser | null | undefined;
2222
}
2323

24-
const ApiService: ServiceSchema<ApiSettingsSchema {{#apiGQL}}& ApolloServiceSettings, ApolloServiceMethods, ApolloServiceLocalVars{{/apiGQL}}> = {
24+
interface LocalVars {
25+
server: HttpServer;
26+
io: any;
27+
}
28+
29+
const ApiService: ServiceSchema<ApiSettingsSchema {{#apiGQL}}& ApolloServiceSettings, ApolloServiceMethods, LocalVars & ApolloServiceLocalVars{{/apiGQL}}> = {
2530
name: "api",
2631

2732
/**

template/test/integration/api.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ describe("Test HTTP API gateway", () => {
2323
const broker = new ServiceBroker({ logger: false });
2424
broker.sendToChannel = vi.fn();
2525

26-
const greeterService = broker.createService(GreeterSchema) as any;
27-
const apiService = broker.createService(APISchema) as any;
26+
const greeterService = broker.createService(GreeterSchema);
27+
const apiService = broker.createService(APISchema);
2828
{{#dbService}}
29-
const productsService = broker.createService(ProductsSchema) as any;
30-
(productsService as any).seedDB = null; // Disable seeding
29+
const productsService = broker.createService(ProductsSchema);
30+
productsService.seedDB = undefined; // Disable seeding
3131
{{/dbService}}
3232

3333
beforeAll(async () => {
@@ -217,11 +217,11 @@ describe("Test Socket.IO API gateway", () => {
217217
let broker = new ServiceBroker({ logger: false });
218218
broker.sendToChannel = vi.fn();
219219

220-
let greeterService = broker.createService(GreeterSchema) as any;
221-
let apiService = broker.createService(APISchema) as any;
220+
let greeterService = broker.createService(GreeterSchema);
221+
let apiService = broker.createService(APISchema);
222222
{{#dbService}}
223-
let productsService = broker.createService(ProductsSchema) as any;
224-
(productsService as any).seedDB = null; // Disable seeding
223+
let productsService = broker.createService(ProductsSchema);
224+
productsService.seedDB = undefined; // Disable seeding
225225
{{/dbService}}
226226

227227
beforeAll(() => broker.start());
@@ -412,7 +412,7 @@ describe("Test GraphQL API gateway", () => {
412412
let apiService = broker.createService(APISchema);
413413
{{#dbService}}
414414
let productsService = broker.createService(ProductsSchema);
415-
(productsService as any).seedDB = null; // Disable seeding
415+
productsService.seedDB = undefined; // Disable seeding
416416
{{/dbService}}
417417

418418
beforeAll(() => broker.start());

template/test/integration/products.service.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import TestService from "../../services/products.service.js";
77
describe("Test 'products' service", () => {
88
describe("Test actions", () => {
99
const broker = new ServiceBroker({ logger: false });
10-
const service = broker.createService(TestService) as any;
11-
service.seedDB = null; // Disable seeding
10+
const service = broker.createService(TestService);
11+
service.seedDB = undefined; // Disable seeding
1212

1313
broker.sendToChannel = vi.fn();
1414

template/test/unit/services/products.spec.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@ import { afterAll, beforeAll, describe, it, expect, vi } from "vitest";
22

33
import { Context, Errors, ServiceBroker } from "moleculer";
44
import type { ServiceSchema } from "moleculer";
5+
import type { BaseAdapter } from "@moleculer/database";
56
import TestService from "../../../services/products.service.js";
67

78
describe("Test 'products' service", () => {
89
describe("Test actions", () => {
910
const broker = new ServiceBroker({ logger: false });
10-
const service = broker.createService(TestService) as any;
11+
const service = broker.createService(TestService);
1112

1213
service.seedDB = vi.fn();
13-
vi.spyOn(service, "updateEntity");
14-
vi.spyOn(service, "entityChanged");
14+
const mockedUpdateEntity = vi.spyOn(service, "updateEntity");
15+
const mockedEntityChanged = vi.spyOn(service, "entityChanged");
1516

1617
const record = {
1718
_id: "123",
@@ -63,8 +64,8 @@ describe("Test 'products' service", () => {
6364

6465
describe("Test 'products.decreaseQuantity'", () => {
6566
it("should call the adapter updateById method & transform result", async () => {
66-
service.updateEntity.mockClear();
67-
service.entityChanged.mockClear();
67+
mockedUpdateEntity.mockClear();
68+
mockedEntityChanged.mockClear();
6869

6970
const res = await broker.call("products.decreaseQuantity", {
7071
id: "123",
@@ -94,8 +95,8 @@ describe("Test 'products' service", () => {
9495
});
9596

9697
it("should throw error if params is not valid", async () => {
97-
service.updateEntity.mockClear();
98-
service.entityChanged.mockClear();
98+
mockedUpdateEntity.mockClear();
99+
mockedEntityChanged.mockClear();
99100

100101
expect.assertions(2);
101102
try {
@@ -122,7 +123,7 @@ describe("Test 'products' service", () => {
122123

123124
describe("Test methods", () => {
124125
const broker = new ServiceBroker({ logger: false });
125-
const service = broker.createService(TestService) as any;
126+
const service = broker.createService(TestService);
126127

127128
vi.spyOn(service, "seedDB");
128129

@@ -131,7 +132,7 @@ describe("Test 'products' service", () => {
131132
count: vi.fn(async () => 0),
132133
insertMany: vi.fn()
133134
};
134-
service.getAdapter = async () => adapter;
135+
service.getAdapter = async () => adapter as any as BaseAdapter;
135136

136137
beforeAll(() => broker.start());
137138
afterAll(() => broker.stop());

0 commit comments

Comments
 (0)