import { h } from 'preact'; import render from 'preact-render-to-json'; import { shallow } from 'preact-render-spy'; import fetch from 'jest-fetch-mock'; import { JSDOM } from 'jsdom'; import Chat from '../chat'; import algoliasearch from '../__mocks__/algoliasearchUsers'; global.fetch = fetch; const doc = new JSDOM('
'); global.document = doc; global.document.body.innerHTML = ''; global.window = doc.defaultView; global.window.algoliasearch = algoliasearch; // mock observer and user ID window.IntersectionObserver = jest.fn(function() { this.observe = jest.fn(); }); global.window.currentUser = { id: 'some_id' }; // fake props to pass to Chat const rootData = { algoliaId: 'somealgoliaid', algoliaIndex: 'somealgoliaindex', algoliaKey: 'somealgoliakey', chatChannels: JSON.stringify([ { channel_name: 'channel name 1', last_opened_at: 'September 2, 2018', channel_users: [], last_message_at: 'September 21, 2018', channel_type: 'group', slug: '0', id: 12345, messages_count: 124, }, { channel_name: 'group channel 2', last_opened_at: 'September 12, 2018', channel_users: [ { profile_image: 'fake_profile_image', darker_color: '#111111', last_opened_at: 'some last open date', }, { profile_image: 'fake_profile_pic', darker_color: '#222222', last_opened_at: 'some other last open date', }, ], last_message_at: 'September 14, 2018', channel_type: 'direct', slug: '1', id: 34561, messages_count: 83, }, { channel_name: 'group channel 3', last_opened_at: 'September 30, 2018', channel_users: [ { profile_image: 'fake_profile_image', darker_color: '#111111', last_opened_at: 'some last open date', }, { profile_image: 'fake_profile_pic', darker_color: '#222222', last_opened_at: 'some other last open date', }, ], last_message_at: 'September 29, 2018', channel_type: 'group', slug: '2', id: 67890, messages_count: 56, }, ]), chatOptions: JSON.stringify({ showChannelsList: true, showTimestamp: true, activeChannelId: 34561, }), githubToken: 'somegithubtoken', pusherKey: 'somepusherkey', }; const getChat = () =>