Skip to content

Commit 8a81f5e

Browse files
test(microservices): add tests for overloads of pattern decorators
1 parent d1e6e9b commit 8a81f5e

2 files changed

Lines changed: 196 additions & 2 deletions

File tree

packages/microservices/test/decorators/event-pattern.decorator.spec.ts

Lines changed: 98 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { expect } from 'chai';
2-
import { PATTERN_METADATA, PATTERN_EXTRAS_METADATA } from '../../constants';
2+
import {
3+
PATTERN_EXTRAS_METADATA,
4+
PATTERN_METADATA,
5+
TRANSPORT_METADATA,
6+
} from '../../constants';
7+
import { Transport } from '../../enums/transport.enum';
38
import { EventPattern } from '../../decorators/event-pattern.decorator';
49

510
describe('@EventPattern', () => {
@@ -20,4 +25,96 @@ describe('@EventPattern', () => {
2025
);
2126
expect(metadata).to.be.deep.equal(extras);
2227
});
28+
29+
describe('decorator overloads', () => {
30+
class TestComponent1 {
31+
@EventPattern(pattern)
32+
public static test() {}
33+
}
34+
class TestComponent2 {
35+
@EventPattern(pattern, Transport.TCP)
36+
public static test() {}
37+
}
38+
class TestComponent3 {
39+
@EventPattern(pattern, extras)
40+
public static test() {}
41+
}
42+
class TestComponent4 {
43+
@EventPattern(pattern, Transport.TCP, extras)
44+
public static test() {}
45+
}
46+
47+
it(`should enhance method with ${PATTERN_METADATA} metadata`, () => {
48+
const metadataArg = Reflect.getMetadata(
49+
PATTERN_METADATA,
50+
TestComponent1.test,
51+
);
52+
const transportArg = Reflect.getMetadata(
53+
TRANSPORT_METADATA,
54+
TestComponent1.test,
55+
);
56+
const extrasArg = Reflect.getMetadata(
57+
PATTERN_EXTRAS_METADATA,
58+
TestComponent1.test,
59+
);
60+
expect(metadataArg).to.be.eql(pattern);
61+
expect(transportArg).to.be.undefined;
62+
expect(extrasArg).to.be.undefined;
63+
});
64+
65+
it(`should enhance method with ${PATTERN_METADATA}, ${TRANSPORT_METADATA} metadata`, () => {
66+
const metadataArg = Reflect.getMetadata(
67+
PATTERN_METADATA,
68+
TestComponent2.test,
69+
);
70+
const transportArg = Reflect.getMetadata(
71+
TRANSPORT_METADATA,
72+
TestComponent2.test,
73+
);
74+
const extrasArg = Reflect.getMetadata(
75+
PATTERN_EXTRAS_METADATA,
76+
TestComponent2.test,
77+
);
78+
expect(metadataArg).to.be.eql(pattern);
79+
expect(transportArg).to.be.eql(Transport.TCP);
80+
expect(extrasArg).to.be.undefined;
81+
});
82+
83+
it(`should enhance method with ${PATTERN_METADATA}, ${PATTERN_EXTRAS_METADATA} metadata`, () => {
84+
const metadataArg = Reflect.getMetadata(
85+
PATTERN_METADATA,
86+
TestComponent3.test,
87+
);
88+
const transportArg = Reflect.getMetadata(
89+
TRANSPORT_METADATA,
90+
TestComponent3.test,
91+
);
92+
const extrasArg = Reflect.getMetadata(
93+
PATTERN_EXTRAS_METADATA,
94+
TestComponent3.test,
95+
);
96+
expect(metadataArg).to.be.eql(pattern);
97+
expect(transportArg).to.be.undefined;
98+
expect(extrasArg).to.be.eql(extras);
99+
});
100+
101+
it(`should enhance method with ${PATTERN_METADATA}, ${TRANSPORT_METADATA} and \
102+
${PATTERN_EXTRAS_METADATA} metadata`, () => {
103+
const metadataArg = Reflect.getMetadata(
104+
PATTERN_METADATA,
105+
TestComponent4.test,
106+
);
107+
const transportArg = Reflect.getMetadata(
108+
TRANSPORT_METADATA,
109+
TestComponent4.test,
110+
);
111+
const extrasArg = Reflect.getMetadata(
112+
PATTERN_EXTRAS_METADATA,
113+
TestComponent4.test,
114+
);
115+
expect(metadataArg).to.be.eql(pattern);
116+
expect(transportArg).to.be.eql(Transport.TCP);
117+
expect(extrasArg).to.be.eql(extras);
118+
});
119+
});
23120
});

packages/microservices/test/decorators/message-pattern.decorator.spec.ts

Lines changed: 98 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { expect } from 'chai';
2-
import { PATTERN_METADATA, PATTERN_EXTRAS_METADATA } from '../../constants';
2+
import {
3+
PATTERN_METADATA,
4+
PATTERN_EXTRAS_METADATA,
5+
TRANSPORT_METADATA,
6+
} from '../../constants';
7+
import { Transport } from '../../enums/transport.enum';
38
import {
49
GrpcMethod,
510
GrpcMethodStreamingType,
@@ -26,6 +31,98 @@ describe('@MessagePattern', () => {
2631
);
2732
expect(metadata).to.be.deep.equal(extras);
2833
});
34+
35+
describe('decorator overloads', () => {
36+
class TestComponent1 {
37+
@MessagePattern(pattern)
38+
public static test() {}
39+
}
40+
class TestComponent2 {
41+
@MessagePattern(pattern, Transport.TCP)
42+
public static test() {}
43+
}
44+
class TestComponent3 {
45+
@MessagePattern(pattern, extras)
46+
public static test() {}
47+
}
48+
class TestComponent4 {
49+
@MessagePattern(pattern, Transport.TCP, extras)
50+
public static test() {}
51+
}
52+
53+
it(`should enhance method with ${PATTERN_METADATA} metadata`, () => {
54+
const metadataArg = Reflect.getMetadata(
55+
PATTERN_METADATA,
56+
TestComponent1.test,
57+
);
58+
const transportArg = Reflect.getMetadata(
59+
TRANSPORT_METADATA,
60+
TestComponent1.test,
61+
);
62+
const extrasArg = Reflect.getMetadata(
63+
PATTERN_EXTRAS_METADATA,
64+
TestComponent1.test,
65+
);
66+
expect(metadataArg).to.be.eql(pattern);
67+
expect(transportArg).to.be.undefined;
68+
expect(extrasArg).to.be.undefined;
69+
});
70+
71+
it(`should enhance method with ${PATTERN_METADATA}, ${TRANSPORT_METADATA} metadata`, () => {
72+
const metadataArg = Reflect.getMetadata(
73+
PATTERN_METADATA,
74+
TestComponent2.test,
75+
);
76+
const transportArg = Reflect.getMetadata(
77+
TRANSPORT_METADATA,
78+
TestComponent2.test,
79+
);
80+
const extrasArg = Reflect.getMetadata(
81+
PATTERN_EXTRAS_METADATA,
82+
TestComponent2.test,
83+
);
84+
expect(metadataArg).to.be.eql(pattern);
85+
expect(transportArg).to.be.eql(Transport.TCP);
86+
expect(extrasArg).to.be.undefined;
87+
});
88+
89+
it(`should enhance method with ${PATTERN_METADATA}, ${PATTERN_EXTRAS_METADATA} metadata`, () => {
90+
const metadataArg = Reflect.getMetadata(
91+
PATTERN_METADATA,
92+
TestComponent3.test,
93+
);
94+
const transportArg = Reflect.getMetadata(
95+
TRANSPORT_METADATA,
96+
TestComponent3.test,
97+
);
98+
const extrasArg = Reflect.getMetadata(
99+
PATTERN_EXTRAS_METADATA,
100+
TestComponent3.test,
101+
);
102+
expect(metadataArg).to.be.eql(pattern);
103+
expect(transportArg).to.be.undefined;
104+
expect(extrasArg).to.be.eql(extras);
105+
});
106+
107+
it(`should enhance method with ${PATTERN_METADATA}, ${TRANSPORT_METADATA} and \
108+
${PATTERN_EXTRAS_METADATA} metadata`, () => {
109+
const metadataArg = Reflect.getMetadata(
110+
PATTERN_METADATA,
111+
TestComponent4.test,
112+
);
113+
const transportArg = Reflect.getMetadata(
114+
TRANSPORT_METADATA,
115+
TestComponent4.test,
116+
);
117+
const extrasArg = Reflect.getMetadata(
118+
PATTERN_EXTRAS_METADATA,
119+
TestComponent4.test,
120+
);
121+
expect(metadataArg).to.be.eql(pattern);
122+
expect(transportArg).to.be.eql(Transport.TCP);
123+
expect(extrasArg).to.be.eql(extras);
124+
});
125+
});
29126
});
30127

31128
describe('@GrpcMethod', () => {

0 commit comments

Comments
 (0)