-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathchat-message.spec.ts
43 lines (36 loc) · 1.28 KB
/
chat-message.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import { html } from '@microsoft/fast-element';
import { ChatMessage, chatMessageTag } from '..';
import { fixture, type Fixture } from '../../../utilities/tests/fixture';
import { ChatMessageType } from '../types';
async function setup(): Promise<Fixture<ChatMessage>> {
return await fixture<ChatMessage>(
html`<${chatMessageTag}>Some message</${chatMessageTag}>`
);
}
describe('ChatMessage', () => {
let element: ChatMessage;
let connect: () => Promise<void>;
let disconnect: () => Promise<void>;
beforeEach(async () => {
({ element, connect, disconnect } = await setup());
});
afterEach(async () => {
await disconnect();
});
it('can construct an element instance', () => {
expect(document.createElement(chatMessageTag)).toBeInstanceOf(
ChatMessage
);
});
it('should have a slot element in the shadow DOM', async () => {
await connect();
expect(element.shadowRoot?.querySelector('SLOT')).not.toBeNull();
expect(
element?.innerText?.includes('Some message', undefined)
).toBeTrue();
});
it("should initialize 'message-type' to default", async () => {
await connect();
expect(element.messageType).toBe(ChatMessageType.system);
});
});