From 22dca7c8d1f360f20496c841a3160e9aac6e44e7 Mon Sep 17 00:00:00 2001 From: mahula Date: Tue, 11 Apr 2023 11:12:16 +0200 Subject: [PATCH] finalize unit tests for federation visualization page --- admin/src/pages/FederationVisualize.spec.js | 37 ++++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/admin/src/pages/FederationVisualize.spec.js b/admin/src/pages/FederationVisualize.spec.js index 7b4036689..d24e0286d 100644 --- a/admin/src/pages/FederationVisualize.spec.js +++ b/admin/src/pages/FederationVisualize.spec.js @@ -3,6 +3,7 @@ import FederationVisualize from './FederationVisualize' import VueApollo from 'vue-apollo' import { createMockClient } from 'mock-apollo-client' import { getCommunities } from '@/graphql/getCommunities' +import { toastErrorSpy } from '../../test/testSetup' const mockClient = createMockClient() const apolloProvider = new VueApollo({ @@ -15,7 +16,6 @@ localVue.use(VueApollo) const mocks = { $t: (key) => key, - // $t: jest.fn((t) => t), $d: jest.fn((d) => d), $i18n: { locale: 'en', @@ -87,12 +87,39 @@ describe('FederationVisualize', () => { wrapper = Wrapper() }) - it('has a DIV element with the class "federation-visualize"', () => { - expect(wrapper.find('div.federation-visualize').exists()).toBe(true) + describe('server error', () => { + it('toast error', () => { + expect(toastErrorSpy).toBeCalledWith('Ouch!') + }) }) - it('has a refresh button', () => { - expect(wrapper.find('[data-test="federation-communities-refresh-btn"]').exists()).toBe(true) + describe('sever success', () => { + it('sends query to Apollo when created', () => { + expect(getCommunitiesMock).toBeCalled() + }) + + it('has a DIV element with the class "federation-visualize"', () => { + expect(wrapper.find('div.federation-visualize').exists()).toBe(true) + }) + + it('has a refresh button', () => { + expect(wrapper.find('[data-test="federation-communities-refresh-btn"]').exists()).toBe(true) + }) + + it('renders 3 community list items', () => { + expect(wrapper.findAll('.list-group-item').length).toBe(3) + }) + + describe('cklicking the refresh button', () => { + beforeEach(async () => { + jest.clearAllMocks() + await wrapper.find('[data-test="federation-communities-refresh-btn"]').trigger('click') + }) + + it('calls the API', async () => { + expect(getCommunitiesMock).toBeCalled() + }) + }) }) }) })