Skip to content

Commit f3e744c

Browse files
authored
fix(ns-asyncapi-2): fix bug regarding refracting of Operation.message (#1239)
Refs #427
1 parent 900d243 commit f3e744c

File tree

156 files changed

+337
-53
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

156 files changed

+337
-53
lines changed

packages/apidom-ns-asyncapi-2/src/refractor/visitors/async-api-2/operation/MessageVisitor.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ const MessageVisitor = stampit(SpecificationVisitor, FallbackVisitor, {
1313
this.element = this.toRefractedElement(['document', 'objects', 'Reference'], objectElement);
1414
this.element.setMetaProperty('referenced-element', 'message');
1515
} else if (isArrayElement(objectElement.get('oneOf'))) {
16-
this.element = new OperationMessageElement();
16+
this.element = new ObjectElement();
17+
const operationMessageElement = new OperationMessageElement();
1718

1819
objectElement.get('oneOf').forEach((item: ObjectElement) => {
1920
let element;
@@ -24,8 +25,10 @@ const MessageVisitor = stampit(SpecificationVisitor, FallbackVisitor, {
2425
element = this.toRefractedElement(['document', 'objects', 'Message'], item);
2526
}
2627

27-
this.element.push(element);
28+
operationMessageElement.push(element);
2829
});
30+
31+
this.element.set('oneOf', operationMessageElement);
2932
} else {
3033
this.element = this.toRefractedElement(['document', 'objects', 'Message'], objectElement);
3134
}

packages/apidom-ns-asyncapi-2/test/refractor/elements/Operation/__snapshots__/index.ts.snap

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,15 @@ exports[`refractor elements OperationElement given message field of \`oneOf\` sh
2121
(OperationElement
2222
(MemberElement
2323
(StringElement)
24-
(ArrayElement
25-
(MessageElement)
26-
(ReferenceElement
27-
(MemberElement
28-
(StringElement)
29-
(StringElement))))))
24+
(ObjectElement
25+
(MemberElement
26+
(StringElement)
27+
(ArrayElement
28+
(MessageElement)
29+
(ReferenceElement
30+
(MemberElement
31+
(StringElement)
32+
(StringElement))))))))
3033
`;
3134

3235
exports[`refractor elements OperationElement given message field of type MessageElement should refract to semantic ApiDOM tree 1`] = `

packages/apidom-ns-asyncapi-2/test/refractor/plugins/replace-empty-element/__snapshots__/sequences.ts.snap

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,12 @@ exports[`given multiple empty value instead of MessageElement should replace emp
7373
(OperationElement
7474
(MemberElement
7575
(StringElement)
76-
(ArrayElement
77-
(MessageElement)
78-
(MessageElement))))))))))
76+
(ObjectElement
77+
(MemberElement
78+
(StringElement)
79+
(ArrayElement
80+
(MessageElement)
81+
(MessageElement))))))))))))
7982
`;
8083

8184
exports[`given multiple empty value instead of TagElement should replace empty values with semantic elements 1`] = `

packages/apidom-reference/src/dereference/strategies/asyncapi-2/visitor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ const AsyncApi2DereferenceVisitor = stampit({
229229
referencedElement.meta.clone(),
230230
referencedElement.attributes.clone(),
231231
);
232-
// existing keywords from referencing ChannelItemElement overrides ones from referenced schema
232+
// existing keywords from referencing ChannelItemElement overrides ones from referenced ChannelItemElement
233233
channelItemElement.forEach((value: Element, key: Element, item: Element) => {
234234
mergedResult.remove(key.toValue());
235235
mergedResult.content.push(item);

packages/apidom-reference/test/dereference/strategies/asyncapi-2-0/message-object/index.ts

Lines changed: 0 additions & 31 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)