Skip to content

Commit c1d50c7

Browse files
committedDec 29, 2024
test: validation message
1 parent a1a833e commit c1d50c7

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed
 

‎test/mocks/dto/myClass.dto.ts

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { IsInt, IsString, MaxLength } from 'class-validator';
2+
3+
export class MyClass {
4+
@IsString()
5+
@MaxLength(5, { message: 'The name must be less than 5' })
6+
name: string;
7+
8+
@IsInt()
9+
age: number;
10+
}

‎test/mocks/rmq.event.ts

+10
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
MessageRoute,
88
RmqInterceptor,
99
SerDes,
10+
RMQValidate,
1011
} from '../../lib';
1112
import {
1213
EventInterceptorClass,
@@ -18,6 +19,8 @@ import {
1819
EventMiddlewareEndpointReturn,
1920
} from './event.middleware';
2021
import { RMQError } from '../../lib';
22+
import { MyClass } from './dto/myClass.dto';
23+
2124
@Injectable()
2225
@SerDes({
2326
deserialize: (message: Buffer): any => JSON.parse(message.toString()),
@@ -104,6 +107,13 @@ export class RmqEvents {
104107
return { number: obj.number };
105108
}
106109

110+
@MessageRoute('message.valid')
111+
@RMQValidate()
112+
getValidMessage(obj: MyClass, consumeMessage: ConsumeMessage) {
113+
this.rmqServie.ack(consumeMessage);
114+
return { message: obj };
115+
}
116+
107117
@MessageNonRoute()
108118
recivedNonRoute(obj: any, consumeMessage: ConsumeMessage) {
109119
this.rmqServie.ack(consumeMessage);

‎test/rmq-nestjs.spec.ts

+31
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { RmqModule, RmqService, TypeChannel, RMQError } from '../lib';
55
import { ConnectionMockModule } from './mocks/rmq-nestjs.module';
66
import { hostname } from 'node:os';
77
import { MyGlobalRMQErrorHandler } from './mocks/error.handlers';
8+
import { MyClass } from './mocks/dto/myClass.dto';
89

910
describe('RMQe2e', () => {
1011
let api: INestApplication;
@@ -195,6 +196,36 @@ describe('RMQe2e', () => {
195196
});
196197
});
197198

199+
describe('validation messages', () => {
200+
it('send valid message', async () => {
201+
const topic = 'message.valid';
202+
const objMessage: MyClass = {
203+
age: 20,
204+
name: 'Diy0r',
205+
};
206+
const { message } = await rmqServieController.sendMessage(
207+
objMessage,
208+
topic,
209+
);
210+
expect(message).toEqual(message);
211+
});
212+
213+
it('send invalid message', async () => {
214+
try {
215+
const topic = 'message.valid';
216+
const objMessage = {
217+
age: '20',
218+
name: 'FooLii1p',
219+
};
220+
await rmqServieController.sendMessage(objMessage, topic);
221+
} catch (error) {
222+
expect(error.message).toEqual(
223+
'The name must be less than 5; age must be an integer number',
224+
);
225+
}
226+
});
227+
});
228+
198229
afterAll(async () => {
199230
await delay(500);
200231
await api.close();

0 commit comments

Comments
 (0)
Please sign in to comment.