diff --git a/src/components/chatbox.test.js b/src/components/chatbox.test.js
index 1deb6e9..d706033 100644
--- a/src/components/chatbox.test.js
+++ b/src/components/chatbox.test.js
@@ -132,10 +132,6 @@ describe('Chatbox', () => {
expect(createClient.mock.calls.length).toEqual(0)
})
- test('notification should appear when facilitator joins chat', () => {
- //
- })
-
test('submitted messages should be sent to matrix', async () => {
const chatbox = mount()
const dock = chatbox.find('button.dock')
@@ -169,12 +165,59 @@ describe('Chatbox', () => {
});
})
- test('received messages should appear in chat window', () => {
- //
+
+ test('decryption failure should lead to a new unencrypted chat', async () => {
+ const chatbox = mount()
+ const dock = chatbox.find('button.dock')
+ const instance = chatbox.instance()
+
+ dock.simulate('click')
+
+ const openChatWindow = await createWaitForElement('.widget-entered')(chatbox)
+ let acceptButton = await createWaitForElement('button#accept')(chatbox)
+ acceptButton = chatbox.find('button#accept')
+
+ acceptButton.simulate('click')
+
+ await waitForExpect(() => {
+ expect(mockCreateRoom).toHaveBeenCalled()
+ });
+
+ jest.spyOn(instance, 'initializeUnencryptedChat')
+ instance.handleDecryptionError()
+
+ await waitForExpect(() => {
+ expect(mockLeave).toHaveBeenCalled()
+ });
+
+ await waitForExpect(() => {
+ expect(mockStopClient).toHaveBeenCalled()
+ });
+
+ await waitForExpect(() => {
+ expect(mockClearStores).toHaveBeenCalled()
+ });
+
+ expect(instance.initializeUnencryptedChat).toHaveBeenCalled()
})
- test('decryption failure should lead to a new unencrypted chat', () => {
- //
+ test('creating an unencrypted chat', async () => {
+ const chatbox = mount()
+ const instance = chatbox.instance()
+
+ instance.initializeUnencryptedChat()
+
+ await waitForExpect(() => {
+ expect(createClient).toHaveBeenCalled()
+ })
+
+ await waitForExpect(() => {
+ expect(mockStartClient).toHaveBeenCalled()
+ })
+
+ await waitForExpect(() => {
+ expect(mockInitCrypto).not.toHaveBeenCalled()
+ })
})
test('exiting the chat should leave the room and destroy client', async () => {
@@ -216,4 +259,13 @@ describe('Chatbox', () => {
expect(mockClearStores).toHaveBeenCalled()
});
})
+
+ test('notification should appear when facilitator joins chat', () => {
+ //
+ })
+
+ test('received messages should appear in chat window', () => {
+ //
+ })
+
});