From 3350a501ad07004cd992e0fb356ef3e555c1a826 Mon Sep 17 00:00:00 2001 From: Mary Kate Date: Fri, 11 Sep 2020 13:51:08 -0500 Subject: [PATCH] add tests for chat show --- src/api/__mocks__/{chats.js => chat.js} | 246 ++++++++++++++++++++++++ src/api/__mocks__/users.js | 2 +- test/views/chats/show.test.js | 51 +++++ test/views/chats/store.conf.js | 25 +++ 4 files changed, 323 insertions(+), 1 deletion(-) rename src/api/__mocks__/{chats.js => chat.js} (64%) create mode 100644 test/views/chats/show.test.js create mode 100644 test/views/chats/store.conf.js diff --git a/src/api/__mocks__/chats.js b/src/api/__mocks__/chat.js similarity index 64% rename from src/api/__mocks__/chats.js rename to src/api/__mocks__/chat.js index 0e492868..946673b1 100644 --- a/src/api/__mocks__/chats.js +++ b/src/api/__mocks__/chat.js @@ -1,3 +1,15 @@ +export async function fetchChat(id, authHost, token) { + return Promise.resolve({ data: userChats[0] }) +} + +export async function fetchChatMessages(id, max_id, authHost, token) { + return Promise.resolve({ data: chatMessages }) +} + +export async function deleteChat(chat_id, message_id, authHost, token) { + return Promise.resolve({ data: userChats[0] }) +} + export const userChats = [ { id: '9y8e7ESoVUiKVMAoCW', @@ -369,3 +381,237 @@ export const userChats = [ updated_at: '2020-08-15T06:43:29.000Z' } ] + +export const chatMessages = [ + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'heyy', + created_at: '2020-09-11T00:07:13.000Z', + emojis: [], + id: '9z22Q9MzWiAk7GZnNY', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: { + description: null, + id: '-1990764178', + pleroma: { + mime_type: 'image/png' + }, + preview_url: 'http://localhost:4000/media/b087b890b39aa8301f736e8b45c02213183986c8a994c2c99e921ae85afa17e4.png', + remote_url: 'http://localhost:4000/media/b087b890b39aa8301f736e8b45c02213183986c8a994c2c99e921ae85afa17e4.png', + text_url: 'http://localhost:4000/media/b087b890b39aa8301f736e8b45c02213183986c8a994c2c99e921ae85afa17e4.png', + type: 'image', + url: 'http://localhost:4000/media/b087b890b39aa8301f736e8b45c02213183986c8a994c2c99e921ae85afa17e4.png' + }, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: null, + created_at: '2020-09-10T20:35:33.000Z', + emojis: [], + id: '9z1jWuQNaq8Ef6fdOS', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'probably', + created_at: '2020-09-10T16:57:33.000Z', + emojis: [], + id: '9z1Q4eXb9kBYA8rNT6', + unread: false + }, + { + account_id: '9xUj5WTmzSlFPN6OLg', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'That has got to be 20 by now', + created_at: '2020-09-10T16:57:29.000Z', + emojis: [], + id: '9z1Q4LQAF9wuraEfk8', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'I miss bars :(', + created_at: '2020-09-10T16:57:22.000Z', + emojis: [], + id: '9z1Q3gmlKEfEpnUdm4', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'Yeah tying to!', + created_at: '2020-09-10T16:57:15.000Z', + emojis: [], + id: '9z1Q307VxCiKVhs6eO', + unread: false + }, + { + account_id: '9xUj5WTmzSlFPN6OLg', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'staying safe with covid and such?', + created_at: '2020-09-10T16:57:10.000Z', + emojis: [], + id: '9z1Q2Z56U3k6ePXIe1', + unread: false + }, + { + account_id: '9xUj5WTmzSlFPN6OLg', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'how have you been?', + created_at: '2020-09-10T16:57:06.000Z', + emojis: [], + id: '9z1Q29XvQHLfSGowxU', + unread: false + }, + { + account_id: '9xUj5WTmzSlFPN6OLg', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'so what are you doing?', + created_at: '2020-09-10T16:57:02.000Z', + emojis: [], + id: '9z1Q1lPb9aQYbUjxeD', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'crazy', + created_at: '2020-09-10T16:56:55.000Z', + emojis: [], + id: '9z1Q19zQHwVMXbD2DA', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'omg yeah same', + created_at: '2020-09-10T16:56:54.000Z', + emojis: [], + id: '9z1Q12zWJBQIpsCVtI', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'hahahaha', + created_at: '2020-09-10T16:56:51.000Z', + emojis: [], + id: '9z1Q0pyKiHkWSQXsjg', + unread: false + }, + { + account_id: '9xUj5WTmzSlFPN6OLg', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'I think this is 13', + created_at: '2020-09-10T16:56:45.000Z', + emojis: [], + id: '9z1Q0Ft6sEBGXnpCb3', + unread: false + }, + { + account_id: '9xUj5WTmzSlFPN6OLg', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'We need to keep typing until we hit 20', + created_at: '2020-09-10T16:56:42.000Z', + emojis: [], + id: '9z1PzywjrTyy08OMOO', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'That's nice', + created_at: '2020-09-10T16:56:03.000Z', + emojis: [], + id: '9z1PwOkJzs8orKsJDU', + unread: false + }, + { + account_id: '9xUj5WTmzSlFPN6OLg', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'I've been good! Keeping busy', + created_at: '2020-09-10T16:56:00.000Z', + emojis: [], + id: '9z1Pw7qmoaDASSljQv', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: '*been', + created_at: '2020-09-10T16:55:55.000Z', + emojis: [], + id: '9z1PvcWVHwZFIa2b0y', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'How have you ben?', + created_at: '2020-09-10T16:55:52.000Z', + emojis: [], + id: '9z1PvK4BuTE03YejNw', + unread: false + }, + { + account_id: '9xUIiQfGrdPJDZe39s', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'Oh it's okay! No worries!', + created_at: '2020-09-10T16:55:44.000Z', + emojis: [], + id: '9z1Puc4hTDUJcOYW4O', + unread: false + }, + { + account_id: '9xUj5WTmzSlFPN6OLg', + attachment: null, + card: null, + chat_id: '9y8e7ESoVUiKVMAoCW', + content: 'didn't mean to ignore you', + created_at: '2020-09-10T16:55:32.000Z', + emojis: [], + id: '9z1PtWGNamQTIvUspk', + unread: false + } +] diff --git a/src/api/__mocks__/users.js b/src/api/__mocks__/users.js index 8ed6337a..5810a341 100644 --- a/src/api/__mocks__/users.js +++ b/src/api/__mocks__/users.js @@ -1,4 +1,4 @@ -import userChats from './chats' +import userChats from './chat' export let users = [ { active: true, approval_pending: false, deactivated: false, id: '2', nickname: 'allis', local: true, external: false, roles: { admin: true, moderator: false }, tags: [], actor_type: 'Person' }, diff --git a/test/views/chats/show.test.js b/test/views/chats/show.test.js new file mode 100644 index 00000000..ac334393 --- /dev/null +++ b/test/views/chats/show.test.js @@ -0,0 +1,51 @@ +import Vuex from 'vuex' +import { mount, createLocalVue, config } from '@vue/test-utils' +import flushPromises from 'flush-promises' +import Element from 'element-ui' +import ChatShow from '@/views/chats/show' +import { storeConfig } from './store.conf' +import { cloneDeep } from 'lodash' + +config.mocks["$t"] = () => {} + +const localVue = createLocalVue() +localVue.use(Vuex) +localVue.use(Element) + +const $route = { + params: { + id: '9y8e7ESoVUiKVMAoCW' + } +} + +jest.mock('@/api/nodeInfo') +jest.mock('@/api/chat') + +describe('Chat view', () => { + let store + + beforeEach(() => { + store = new Vuex.Store(cloneDeep(storeConfig)) + }) + + it('fetches chat messages', async (done) => { + const wrapper = mount(ChatShow, { + store, + localVue, + sync: false, + stubs: ['router-link'], + mocks: { + $route + } + }) + + await flushPromises() + expect(wrapper.find('.message-card').isVisible()).toBe(true) + expect(wrapper.find('.chat-particiants-sender').isVisible()).toBe(true) + expect(wrapper.find('.chat-particiants-receiver').isVisible()).toBe(true) + expect(store.state.chat.fetchedChat.receiver.acct).toBe('test10') + expect(store.state.chat.fetchedChatMessages[0].chat_id).toBe('9y8e7ESoVUiKVMAoCW') + expect(store.state.chat.max_id).toBe(null) + done() + }) +}) diff --git a/test/views/chats/store.conf.js b/test/views/chats/store.conf.js new file mode 100644 index 00000000..91fd28c4 --- /dev/null +++ b/test/views/chats/store.conf.js @@ -0,0 +1,25 @@ +import app from '@/store/modules/app' +import settings from '@/store/modules/settings' +import user from '@/store/modules/user' +import chat from '@/store/modules/chat' +import getters from '@/store/getters' + +export const storeConfig = { + modules: { + app, + settings, + user, + chat + }, + getters +} + +export const storeWithTagPolicy = { + modules: { + app, + settings, + user, + chat + }, + getters +}