summaryrefslogtreecommitdiff
path: root/spec/frontend/issuable_suggestions/components/app_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/issuable_suggestions/components/app_spec.js')
-rw-r--r--spec/frontend/issuable_suggestions/components/app_spec.js82
1 files changed, 44 insertions, 38 deletions
diff --git a/spec/frontend/issuable_suggestions/components/app_spec.js b/spec/frontend/issuable_suggestions/components/app_spec.js
index 7bb8e26b81a..41860202750 100644
--- a/spec/frontend/issuable_suggestions/components/app_spec.js
+++ b/spec/frontend/issuable_suggestions/components/app_spec.js
@@ -3,25 +3,31 @@ import App from '~/issuable_suggestions/components/app.vue';
import Suggestion from '~/issuable_suggestions/components/item.vue';
describe('Issuable suggestions app component', () => {
- let vm;
+ let wrapper;
function createComponent(search = 'search') {
- vm = shallowMount(App, {
+ wrapper = shallowMount(App, {
propsData: {
search,
projectPath: 'project',
},
+ sync: false,
+ attachToDocument: true,
});
}
+ beforeEach(() => {
+ createComponent();
+ });
+
afterEach(() => {
- vm.destroy();
+ wrapper.destroy();
});
it('does not render with empty search', () => {
- createComponent('');
+ wrapper.setProps({ search: '' });
- expect(vm.isVisible()).toBe(false);
+ expect(wrapper.isVisible()).toBe(false);
});
describe('with data', () => {
@@ -32,65 +38,65 @@ describe('Issuable suggestions app component', () => {
});
it('renders component', () => {
- createComponent();
- vm.setData(data);
+ wrapper.setData(data);
- expect(vm.isEmpty()).toBe(false);
+ expect(wrapper.isEmpty()).toBe(false);
});
it('does not render with empty search', () => {
- createComponent('');
- vm.setData(data);
+ wrapper.setProps({ search: '' });
+ wrapper.setData(data);
- expect(vm.isVisible()).toBe(false);
+ expect(wrapper.isVisible()).toBe(false);
});
it('does not render when loading', () => {
- createComponent();
- vm.setData({
+ wrapper.setData({
...data,
loading: 1,
});
- expect(vm.isVisible()).toBe(false);
+ expect(wrapper.isVisible()).toBe(false);
});
it('does not render with empty issues data', () => {
- createComponent();
- vm.setData({ issues: [] });
+ wrapper.setData({ issues: [] });
- expect(vm.isVisible()).toBe(false);
+ expect(wrapper.isVisible()).toBe(false);
});
it('renders list of issues', () => {
- createComponent();
- vm.setData(data);
+ wrapper.setData(data);
- expect(vm.findAll(Suggestion).length).toBe(2);
+ return wrapper.vm.$nextTick(() => {
+ expect(wrapper.findAll(Suggestion).length).toBe(2);
+ });
});
it('adds margin class to first item', () => {
- createComponent();
- vm.setData(data);
-
- expect(
- vm
- .findAll('li')
- .at(0)
- .is('.append-bottom-default'),
- ).toBe(true);
+ wrapper.setData(data);
+
+ return wrapper.vm.$nextTick(() => {
+ expect(
+ wrapper
+ .findAll('li')
+ .at(0)
+ .is('.append-bottom-default'),
+ ).toBe(true);
+ });
});
it('does not add margin class to last item', () => {
- createComponent();
- vm.setData(data);
-
- expect(
- vm
- .findAll('li')
- .at(1)
- .is('.append-bottom-default'),
- ).toBe(false);
+ wrapper.setData(data);
+
+ return wrapper.vm.$nextTick(() => {
+ expect(
+ wrapper
+ .findAll('li')
+ .at(1)
+ .is('.append-bottom-default'),
+ ).toBe(false);
+ });
});
});
});