2021-10-07 14:21:49 +11:00
|
|
|
import { expect } from "chai";
|
|
|
|
|
2021-10-06 10:43:53 +11:00
|
|
|
import {
|
|
|
|
AudioMessage_AudioType,
|
|
|
|
ChatMessage_ContentType,
|
|
|
|
} from "./proto/communities/v1/chat_message";
|
|
|
|
import { ImageType } from "./proto/communities/v1/enums";
|
2021-10-07 14:21:49 +11:00
|
|
|
import {
|
|
|
|
AudioContent,
|
|
|
|
ChatMessage,
|
|
|
|
ContentType,
|
|
|
|
ImageContent,
|
|
|
|
StickerContent,
|
2021-10-06 10:43:53 +11:00
|
|
|
} from "./wire/chat_message";
|
2021-10-07 14:21:49 +11:00
|
|
|
|
|
|
|
describe("Chat Message", () => {
|
|
|
|
it("Encode & decode Image message", () => {
|
|
|
|
const payload = Buffer.from([1, 1]);
|
|
|
|
|
|
|
|
const imageContent: ImageContent = {
|
|
|
|
image: payload,
|
|
|
|
imageType: ImageType.IMAGE_TYPE_PNG,
|
|
|
|
contentType: ContentType.Image,
|
|
|
|
};
|
|
|
|
|
2021-10-08 11:29:15 +11:00
|
|
|
const message = ChatMessage.createMessage(1, 1, "chat-id", imageContent);
|
2021-10-07 14:21:49 +11:00
|
|
|
|
|
|
|
const buf = message.encode();
|
|
|
|
const dec = ChatMessage.decode(buf);
|
|
|
|
|
|
|
|
expect(dec.contentType).eq(ChatMessage_ContentType.CONTENT_TYPE_IMAGE);
|
|
|
|
expect(dec.image?.payload?.toString()).eq(payload.toString());
|
|
|
|
expect(dec.image?.type).eq(ImageType.IMAGE_TYPE_PNG);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("Encode & decode Audio message", () => {
|
|
|
|
const payload = Buffer.from([1, 1]);
|
|
|
|
const durationMs = 12345;
|
|
|
|
|
|
|
|
const audioContent: AudioContent = {
|
|
|
|
audio: payload,
|
|
|
|
audioType: AudioMessage_AudioType.AUDIO_TYPE_AAC,
|
|
|
|
durationMs,
|
|
|
|
contentType: ContentType.Audio,
|
|
|
|
};
|
|
|
|
|
2021-10-08 11:29:15 +11:00
|
|
|
const message = ChatMessage.createMessage(1, 1, "chat-id", audioContent);
|
2021-10-07 14:21:49 +11:00
|
|
|
|
|
|
|
const buf = message.encode();
|
|
|
|
const dec = ChatMessage.decode(buf);
|
|
|
|
|
|
|
|
expect(dec.contentType).eq(ChatMessage_ContentType.CONTENT_TYPE_AUDIO);
|
|
|
|
expect(dec.audio?.payload?.toString()).eq(payload.toString());
|
|
|
|
expect(dec.audio?.type).eq(ImageType.IMAGE_TYPE_PNG);
|
|
|
|
expect(dec.audio?.durationMs).eq(durationMs);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("Encode & decode Sticker message", () => {
|
|
|
|
const hash = "deadbeef";
|
|
|
|
const pack = 12345;
|
|
|
|
|
|
|
|
const stickerContent: StickerContent = {
|
|
|
|
hash,
|
|
|
|
pack,
|
|
|
|
contentType: ContentType.Sticker,
|
|
|
|
};
|
|
|
|
|
2021-10-08 11:29:15 +11:00
|
|
|
const message = ChatMessage.createMessage(1, 1, "chat-id", stickerContent);
|
2021-10-07 14:21:49 +11:00
|
|
|
|
|
|
|
const buf = message.encode();
|
|
|
|
const dec = ChatMessage.decode(buf);
|
|
|
|
|
|
|
|
expect(dec.contentType).eq(ChatMessage_ContentType.CONTENT_TYPE_STICKER);
|
|
|
|
expect(dec.sticker?.hash).eq(hash);
|
|
|
|
expect(dec.sticker?.pack).eq(pack);
|
|
|
|
});
|
|
|
|
});
|