Skip to content

Commit a93f248

Browse files
authored
feat!: remove messageId() (#889)
1 parent 3582d31 commit a93f248

14 files changed

+52
-88
lines changed

src/models/message-trait.ts

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ export interface MessageTraitInterface extends BaseModel, BindingsMixinInterface
99
hasSchemaFormat(): boolean;
1010
schemaFormat(): string | undefined;
1111
hasMessageId(): boolean;
12-
messageId(): string | undefined;
1312
hasCorrelationId(): boolean;
1413
correlationId(): CorrelationIdInterface | undefined;
1514
hasContentType(): boolean;

src/models/v2/message-trait.ts

+1-5
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import type { v2 } from '../../spec-types';
2121

2222
export class MessageTrait<J extends v2.MessageTraitObject = v2.MessageTraitObject> extends BaseModel<J, { id: string }> implements MessageTraitInterface {
2323
id(): string {
24-
return this.messageId() || this._meta.id || this.json(xParserMessageName) as string;
24+
return this._json.messageId || this._meta.id || this.json(xParserMessageName) as string;
2525
}
2626

2727
hasSchemaFormat(): boolean {
@@ -35,10 +35,6 @@ export class MessageTrait<J extends v2.MessageTraitObject = v2.MessageTraitObjec
3535
hasMessageId(): boolean {
3636
return !!this._json.messageId;
3737
}
38-
39-
messageId(): string | undefined {
40-
return this._json.messageId;
41-
}
4238

4339
hasCorrelationId(): boolean {
4440
return !!this._json.correlationId;

src/models/v3/message-trait.ts

+2-6
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ import type { v3 } from '../../spec-types';
1515

1616
export class MessageTrait<J extends v3.MessageTraitObject = v3.MessageTraitObject> extends CoreModel<J, { id: string }> implements MessageTraitInterface {
1717
id(): string {
18-
return this.messageId() || this._meta.id || this.extensions().get(xParserMessageName)?.value<string>() as string;
18+
return this._meta.id || this.extensions().get(xParserMessageName)?.value<string>() as string;
1919
}
2020

2121
hasMessageId(): boolean {
22-
return !!this._json.messageId;
22+
return false;
2323
}
2424

2525
hasSchemaFormat(): boolean {
@@ -29,10 +29,6 @@ export class MessageTrait<J extends v3.MessageTraitObject = v3.MessageTraitObjec
2929
schemaFormat(): string | undefined {
3030
return undefined;
3131
}
32-
33-
messageId(): string | undefined {
34-
return this._json.messageId;
35-
}
3632

3733
hasCorrelationId(): boolean {
3834
return !!this._json.correlationId;

src/spec-types/v3.ts

-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ export interface MessageObject extends MessageTraitObject, SpecificationExtensio
180180
}
181181

182182
export interface MessageTraitObject extends SpecificationExtensions {
183-
messageId?: string;
184183
headers?: MultiFormatSchemaObject;
185184
correlationId?: CorrelationIDObject | ReferenceObject;
186185
contentType?: string;

test/custom-operations/apply-traits-v3.spec.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ describe('custom operations - apply traits v3', function() {
7676
someMessage: {
7777
traits: [
7878
{
79-
messageId: 'traitMessageId',
79+
summary: 'some summary',
8080
description: 'some description'
8181
},
8282
{
@@ -89,11 +89,11 @@ describe('custom operations - apply traits v3', function() {
8989
someChannel2: {
9090
messages: {
9191
someMessage: {
92-
messageId: 'rootMessageId',
92+
summary: 'root summary',
9393
description: 'root description',
9494
traits: [
9595
{
96-
messageId: 'traitMessageId',
96+
summary: 'some summary',
9797
description: 'some description'
9898
},
9999
{
@@ -112,11 +112,11 @@ describe('custom operations - apply traits v3', function() {
112112

113113
const message1 = v3Document?.json()?.channels?.someChannel1?.messages?.someMessage;
114114
delete (message1 as v3.MessageObject)?.traits;
115-
expect(message1).toEqual({ messageId: 'traitMessageId', description: 'another description', 'x-parser-message-name': 'traitMessageId' });
115+
expect(message1).toEqual({ summary: 'some summary', description: 'another description', 'x-parser-message-name': 'someMessage' });
116116

117117
const message2 = v3Document?.json()?.channels?.someChannel2?.messages?.someMessage;
118118
delete (message2 as v3.MessageObject)?.traits;
119-
expect(message2).toEqual({ messageId: 'rootMessageId', description: 'root description', 'x-parser-message-name': 'rootMessageId' });
119+
expect(message2).toEqual({ summary: 'root summary', description: 'root description', 'x-parser-message-name': 'someMessage' });
120120
});
121121

122122
it('should apply traits to messages (components)', async function() {
@@ -131,7 +131,7 @@ describe('custom operations - apply traits v3', function() {
131131
someMessage1: {
132132
traits: [
133133
{
134-
messageId: 'traitMessageId',
134+
summary: 'some summary',
135135
description: 'some description'
136136
},
137137
{
@@ -140,11 +140,11 @@ describe('custom operations - apply traits v3', function() {
140140
]
141141
},
142142
someMessage2: {
143-
messageId: 'rootMessageId',
143+
summary: 'root summary',
144144
description: 'root description',
145145
traits: [
146146
{
147-
messageId: 'traitMessageId',
147+
summary: 'some summary',
148148
description: 'some description'
149149
},
150150
{
@@ -162,10 +162,10 @@ describe('custom operations - apply traits v3', function() {
162162

163163
const message1 = v3Document?.json()?.components?.messages?.someMessage1;
164164
delete (message1 as v3.MessageObject)?.traits;
165-
expect(message1).toEqual({ messageId: 'traitMessageId', description: 'another description', 'x-parser-message-name': 'traitMessageId' });
165+
expect(message1).toEqual({ summary: 'some summary', description: 'another description', 'x-parser-message-name': 'someMessage1' });
166166

167167
const message2 = v3Document?.json()?.components?.messages?.someMessage2;
168168
delete (message2 as v3.MessageObject)?.traits;
169-
expect(message2).toEqual({ messageId: 'rootMessageId', description: 'root description', 'x-parser-message-name': 'rootMessageId' });
169+
expect(message2).toEqual({ summary: 'root summary', description: 'root description', 'x-parser-message-name': 'someMessage2' });
170170
});
171171
});

test/models/v2/channel.spec.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ describe('Channel model', function() {
100100
expect(d.messages()).toBeInstanceOf(Messages);
101101
expect(d.messages().all()).toHaveLength(1);
102102
expect(d.messages().all()[0]).toBeInstanceOf(Message);
103-
expect(d.messages().all()[0].messageId()).toEqual((doc as any).publish.message.messageId);
103+
expect(d.messages().all()[0].id()).toEqual((doc as any).publish.message.messageId);
104104
});
105105

106106
it('should return collection of messages - oneOf message', function() {
@@ -109,9 +109,9 @@ describe('Channel model', function() {
109109
expect(d.messages()).toBeInstanceOf(Messages);
110110
expect(d.messages().all()).toHaveLength(2);
111111
expect(d.messages().all()[0]).toBeInstanceOf(Message);
112-
expect(d.messages().all()[0].messageId()).toEqual((doc as any).subscribe.message.oneOf[0].messageId);
112+
expect(d.messages().all()[0].id()).toEqual((doc as any).subscribe.message.oneOf[0].messageId);
113113
expect(d.messages().all()[1]).toBeInstanceOf(Message);
114-
expect(d.messages().all()[1].messageId()).toEqual((doc as any).subscribe.message.oneOf[1].messageId);
114+
expect(d.messages().all()[1].id()).toEqual((doc as any).subscribe.message.oneOf[1].messageId);
115115
});
116116

117117
it('should return collection of messages - single message and oneOf', function() {

test/models/v2/message-trait.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ describe('MessageTrait model', function() {
5353
it('should return the value', function() {
5454
const doc = { messageId: '...' };
5555
const d = new MessageTrait(doc);
56-
expect(d.messageId()).toEqual(doc.messageId);
56+
expect(d.id()).toEqual(doc.messageId);
5757
});
5858

5959
it('should return undefined when there is no value', function() {
6060
const doc = {};
6161
const d = new MessageTrait(doc);
62-
expect(d.messageId()).toBeUndefined();
62+
expect(d.id()).toBeUndefined();
6363
});
6464
});
6565

test/models/v2/server.spec.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ describe('Server Model', function () {
144144
expect(d.messages()).toBeInstanceOf(Messages);
145145
expect(d.messages().all()).toHaveLength(1);
146146
expect(d.messages().all()[0]).toBeInstanceOf(Message);
147-
expect(d.messages().all()[0].messageId()).toEqual('1');
147+
expect(d.messages().all()[0].id()).toEqual('1');
148148
});
149149

150150
it('should return collection of messages - multiple channels', function() {
@@ -153,11 +153,11 @@ describe('Server Model', function () {
153153
expect(d.messages()).toBeInstanceOf(Messages);
154154
expect(d.messages().all()).toHaveLength(3);
155155
expect(d.messages().all()[0]).toBeInstanceOf(Message);
156-
expect(d.messages().all()[0].messageId()).toEqual('1');
156+
expect(d.messages().all()[0].id()).toEqual('1');
157157
expect(d.messages().all()[1]).toBeInstanceOf(Message);
158-
expect(d.messages().all()[1].messageId()).toEqual('2');
158+
expect(d.messages().all()[1].id()).toEqual('2');
159159
expect(d.messages().all()[2]).toBeInstanceOf(Message);
160-
expect(d.messages().all()[2].messageId()).toEqual('3');
160+
expect(d.messages().all()[2].id()).toEqual('3');
161161
});
162162

163163
it('should return collection of messages - server available only in particular channel', function() {
@@ -166,11 +166,11 @@ describe('Server Model', function () {
166166
expect(d.messages()).toBeInstanceOf(Messages);
167167
expect(d.messages().all()).toHaveLength(3);
168168
expect(d.messages().all()[0]).toBeInstanceOf(Message);
169-
expect(d.messages().all()[0].messageId()).toEqual('1');
169+
expect(d.messages().all()[0].id()).toEqual('1');
170170
expect(d.messages().all()[1]).toBeInstanceOf(Message);
171-
expect(d.messages().all()[1].messageId()).toEqual('2');
171+
expect(d.messages().all()[1].id()).toEqual('2');
172172
expect(d.messages().all()[2]).toBeInstanceOf(Message);
173-
expect(d.messages().all()[2].messageId()).toEqual('3');
173+
expect(d.messages().all()[2].id()).toEqual('3');
174174
});
175175
});
176176

test/models/v3/channel.spec.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -98,26 +98,26 @@ describe('Channel model', function() {
9898

9999
describe('.messages()', function() {
100100
it('should return collection of messages - single message', function() {
101-
const doc = serializeInput<v3.ChannelObject>({ messages: { someMessage: { messageId: 'messageId' } } });
101+
const doc = serializeInput<v3.ChannelObject>({ messages: { someMessage: {} } });
102102
const d = new Channel(doc);
103103
const msg = doc.messages?.['someMessage'] as v3.MessageObject;
104104
expect(d.messages()).toBeInstanceOf(Messages);
105105
expect(d.messages().all()).toHaveLength(1);
106106
expect(d.messages().all()[0]).toBeInstanceOf(Message);
107-
expect(d.messages().all()[0].messageId()).toEqual(msg?.messageId);
107+
expect(d.messages().all()[0].id()).toEqual('someMessage');
108108
});
109109

110110
it('should return collection of messages - more than one messages', function() {
111-
const doc = serializeInput<v3.ChannelObject>({ messages: { someMessage1: { messageId: 'messageId1' }, someMessage2: { messageId: 'messageId2' } } });
111+
const doc = serializeInput<v3.ChannelObject>({ messages: { someMessage1: {}, someMessage2: {} } });
112112
const d = new Channel(doc);
113113
const msg1 = doc.messages?.['someMessage1'] as v3.MessageObject;
114114
const msg2 = doc.messages?.['someMessage2'] as v3.MessageObject;
115115
expect(d.messages()).toBeInstanceOf(Messages);
116116
expect(d.messages().all()).toHaveLength(2);
117117
expect(d.messages().all()[0]).toBeInstanceOf(Message);
118-
expect(d.messages().all()[0].id()).toEqual(msg1.messageId);
118+
expect(d.messages().all()[0].id()).toEqual('someMessage1');
119119
expect(d.messages().all()[1]).toBeInstanceOf(Message);
120-
expect(d.messages().all()[1].id()).toEqual(msg2.messageId);
120+
expect(d.messages().all()[1].id()).toEqual('someMessage2');
121121
});
122122
});
123123

test/models/v3/message-trait.spec.ts

+4-24
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,6 @@ describe('MessageTrait model', function() {
1313
const d = new MessageTrait(doc, { asyncapi: {} as any, pointer: '', id: 'trait' });
1414
expect(d.id()).toEqual('trait');
1515
});
16-
17-
it('should reuse messageId', function() {
18-
const doc = { messageId: '...' };
19-
const d = new MessageTrait(doc);
20-
expect(d.id()).toEqual(doc.messageId);
21-
});
2216
});
2317

2418
describe('.schemaFormat()', function() {
@@ -38,30 +32,16 @@ describe('MessageTrait model', function() {
3832
});
3933

4034
describe('.hasMessageId()', function() {
41-
it('should return true when there is a value', function() {
42-
const doc = { messageId: '...' };
43-
const d = new MessageTrait(doc);
44-
expect(d.hasMessageId()).toEqual(true);
45-
});
46-
47-
it('should return false when there is no value', function() {
35+
it('should return false when there is a value', function() {
4836
const doc = {};
49-
const d = new MessageTrait(doc);
37+
const d = new MessageTrait(doc, { asyncapi: {} as any, pointer: '', id: 'message' });
5038
expect(d.hasMessageId()).toEqual(false);
5139
});
52-
});
53-
54-
describe('.messageId()', function() {
55-
it('should return the value', function() {
56-
const doc = { messageId: '...' };
57-
const d = new MessageTrait(doc);
58-
expect(d.messageId()).toEqual(doc.messageId);
59-
});
6040

61-
it('should return undefined when there is no value', function() {
41+
it('should return false when there is no value', function() {
6242
const doc = {};
6343
const d = new MessageTrait(doc);
64-
expect(d.messageId()).toBeUndefined();
44+
expect(d.hasMessageId()).toEqual(false);
6545
});
6646
});
6747

test/models/v3/message.spec.ts

-6
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ describe('Message model', function() {
1818
const d = new Message(doc, { asyncapi: {} as any, pointer: '', id: 'message' });
1919
expect(d.id()).toEqual('message');
2020
});
21-
22-
it('should reuse messageId', function() {
23-
const doc = { messageId: '...' };
24-
const d = new Message(doc);
25-
expect(d.id()).toEqual(doc.messageId);
26-
});
2721
});
2822

2923
describe('.schemaFormat() + .hasSchemaFormat()', function() {

test/models/v3/operation-reply.spec.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,20 @@ describe('OperationReply model', function() {
6464

6565
describe('.messages()', function() {
6666
it('should return collection of messages - single message', function() {
67-
const d = new OperationReply({ messages: { someMessage: { messageId: 'messageId' } } });
67+
const d = new OperationReply({ messages: { someMessage: {} } });
6868
expect(d.messages()).toBeInstanceOf(Messages);
6969
expect(d.messages().all()).toHaveLength(1);
7070
expect(d.messages().all()[0]).toBeInstanceOf(Message);
7171
});
7272

7373
it('should return collection of messages - more than one messages', function() {
74-
const d = new OperationReply({ messages: { someMessage1: { messageId: 'messageId1' }, someMessage2: { messageId: 'messageId2' } } });
74+
const d = new OperationReply({ messages: { someMessage1: {}, someMessage2: {} } });
7575
expect(d.messages()).toBeInstanceOf(Messages);
7676
expect(d.messages().all()).toHaveLength(2);
7777
expect(d.messages().all()[0]).toBeInstanceOf(Message);
78-
expect(d.messages().all()[0].messageId()).toEqual('messageId1');
78+
expect(d.messages().all()[0].id()).toEqual('someMessage1');
7979
expect(d.messages().all()[1]).toBeInstanceOf(Message);
80-
expect(d.messages().all()[1].messageId()).toEqual('messageId2');
80+
expect(d.messages().all()[1].id()).toEqual('someMessage2');
8181
});
8282

8383
it('should return undefined if address is not present', function() {

test/models/v3/operation.spec.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -89,31 +89,31 @@ describe('Operation model', function() {
8989

9090
describe('.messages()', function() {
9191
it('should return collection of messages - single message', function() {
92-
const channel = { messages: { someMessage: { messageId: 'messageId' } } };
92+
const channel = { messages: { someMessage: { summary: 'summary' } } };
9393
const d = new Operation({ action: 'send', channel }, { asyncapi: { parsed: { channels: { someChannel: channel } } } as any, pointer: '', id: 'operation' });
9494
expect(d.messages()).toBeInstanceOf(Messages);
9595
expect(d.messages().all()).toHaveLength(1);
9696
expect(d.messages().all()[0]).toBeInstanceOf(Message);
9797
});
9898

9999
it('should return collection of messages - more than one messages', function() {
100-
const channel = { messages: { someMessage1: { messageId: 'messageId1' }, someMessage2: { messageId: 'messageId2' } } };
100+
const channel = { messages: { someMessage1: { summary: 'summary1' }, someMessage2: { summary: 'summary2' } } };
101101
const d = new Operation({ action: 'send', channel }, { asyncapi: { parsed: { channels: { someChannel: channel } } } as any, pointer: '', id: 'operation' });
102102
expect(d.messages()).toBeInstanceOf(Messages);
103103
expect(d.messages().all()).toHaveLength(2);
104104
expect(d.messages().all()[0]).toBeInstanceOf(Message);
105-
expect(d.messages().all()[0].messageId()).toEqual('messageId1');
105+
expect(d.messages().all()[0].summary()).toEqual('summary1');
106106
expect(d.messages().all()[1]).toBeInstanceOf(Message);
107-
expect(d.messages().all()[1].messageId()).toEqual('messageId2');
107+
expect(d.messages().all()[1].summary()).toEqual('summary2');
108108
});
109109

110110
it('should return collection of messages - defined message on operation level', function() {
111-
const channel = { messages: { someMessage1: { messageId: 'messageId1' }, someMessage2: { messageId: 'messageId2' } } };
111+
const channel = { messages: { someMessage1: { summary: 'summary1' }, someMessage2: { summary: 'summary2' } } };
112112
const d = new Operation({ action: 'send', channel, messages: [channel.messages.someMessage1] }, { asyncapi: { parsed: { channels: { someChannel: channel } } } as any, pointer: '', id: 'operation' });
113113
expect(d.messages()).toBeInstanceOf(Messages);
114114
expect(d.messages().all()).toHaveLength(1);
115115
expect(d.messages().all()[0]).toBeInstanceOf(Message);
116-
expect(d.messages().all()[0].messageId()).toEqual('messageId1');
116+
expect(d.messages().all()[0].summary()).toEqual('summary1');
117117
});
118118

119119
it('should return undefined when there is no value', function() {

0 commit comments

Comments
 (0)