50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
import Vue from 'vue';
|
|
import VueApollo from 'vue-apollo';
|
|
import { mount } from '@vue/test-utils';
|
|
import createMockApollo from 'helpers/mock_apollo_helper';
|
|
import waitForPromises from 'helpers/wait_for_promises';
|
|
import EnvironmentsApp from '~/environments/components/new_environments_app.vue';
|
|
import EnvironmentsFolder from '~/environments/components/new_environment_folder.vue';
|
|
import { resolvedEnvironmentsApp, resolvedFolder } from './graphql/mock_data';
|
|
|
|
Vue.use(VueApollo);
|
|
|
|
describe('~/environments/components/new_environments_app.vue', () => {
|
|
let wrapper;
|
|
let environmentAppMock;
|
|
let environmentFolderMock;
|
|
|
|
const createApolloProvider = () => {
|
|
const mockResolvers = {
|
|
Query: { environmentApp: environmentAppMock, folder: environmentFolderMock },
|
|
};
|
|
|
|
return createMockApollo([], mockResolvers);
|
|
};
|
|
|
|
const createWrapper = (apolloProvider) => mount(EnvironmentsApp, { apolloProvider });
|
|
|
|
beforeEach(() => {
|
|
environmentAppMock = jest.fn();
|
|
environmentFolderMock = jest.fn();
|
|
});
|
|
|
|
afterEach(() => {
|
|
wrapper?.destroy();
|
|
});
|
|
|
|
it('should show all the folders that are fetched', async () => {
|
|
environmentAppMock.mockReturnValue(resolvedEnvironmentsApp);
|
|
environmentFolderMock.mockReturnValue(resolvedFolder);
|
|
const apolloProvider = createApolloProvider();
|
|
wrapper = createWrapper(apolloProvider);
|
|
|
|
await waitForPromises();
|
|
await Vue.nextTick();
|
|
|
|
const text = wrapper.findAllComponents(EnvironmentsFolder).wrappers.map((w) => w.text());
|
|
|
|
expect(text).toContainEqual(expect.stringMatching('review'));
|
|
expect(text).not.toContainEqual(expect.stringMatching('production'));
|
|
});
|
|
});
|