Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/vue_shared/components/file_finder/index_spec.js')
-rw-r--r--spec/frontend/vue_shared/components/file_finder/index_spec.js152
1 files changed, 51 insertions, 101 deletions
diff --git a/spec/frontend/vue_shared/components/file_finder/index_spec.js b/spec/frontend/vue_shared/components/file_finder/index_spec.js
index 181fc4017a3..921091c5b84 100644
--- a/spec/frontend/vue_shared/components/file_finder/index_spec.js
+++ b/spec/frontend/vue_shared/components/file_finder/index_spec.js
@@ -1,6 +1,5 @@
import Mousetrap from 'mousetrap';
-import Vue from 'vue';
-import waitForPromises from 'helpers/wait_for_promises';
+import Vue, { nextTick } from 'vue';
import { file } from 'jest/ide/helpers';
import { UP_KEY_CODE, DOWN_KEY_CODE, ENTER_KEY_CODE, ESC_KEY_CODE } from '~/lib/utils/keycodes';
import FindFileComponent from '~/vue_shared/components/file_finder/index.vue';
@@ -31,7 +30,7 @@ describe('File finder item spec', () => {
});
describe('with entries', () => {
- beforeEach((done) => {
+ beforeEach(() => {
createComponent({
files: [
{
@@ -48,7 +47,7 @@ describe('File finder item spec', () => {
],
});
- setImmediate(done);
+ return nextTick();
});
it('renders list of blobs', () => {
@@ -57,68 +56,48 @@ describe('File finder item spec', () => {
expect(vm.$el.textContent).not.toContain('folder');
});
- it('filters entries', (done) => {
+ it('filters entries', async () => {
vm.searchText = 'index';
- setImmediate(() => {
- expect(vm.$el.textContent).toContain('index.js');
- expect(vm.$el.textContent).not.toContain('component.js');
+ await nextTick();
- done();
- });
+ expect(vm.$el.textContent).toContain('index.js');
+ expect(vm.$el.textContent).not.toContain('component.js');
});
- it('shows clear button when searchText is not empty', (done) => {
+ it('shows clear button when searchText is not empty', async () => {
vm.searchText = 'index';
- setImmediate(() => {
- expect(vm.$el.querySelector('.dropdown-input').classList).toContain('has-value');
- expect(vm.$el.querySelector('.dropdown-input-search').classList).toContain('hidden');
+ await nextTick();
- done();
- });
+ expect(vm.$el.querySelector('.dropdown-input').classList).toContain('has-value');
+ expect(vm.$el.querySelector('.dropdown-input-search').classList).toContain('hidden');
});
- it('clear button resets searchText', (done) => {
+ it('clear button resets searchText', async () => {
vm.searchText = 'index';
- waitForPromises()
- .then(() => {
- vm.clearSearchInput();
- })
- .then(waitForPromises)
- .then(() => {
- expect(vm.searchText).toBe('');
- })
- .then(done)
- .catch(done.fail);
+ vm.clearSearchInput();
+
+ expect(vm.searchText).toBe('');
});
- it('clear button focuses search input', (done) => {
+ it('clear button focuses search input', async () => {
jest.spyOn(vm.$refs.searchInput, 'focus').mockImplementation(() => {});
vm.searchText = 'index';
- waitForPromises()
- .then(() => {
- vm.clearSearchInput();
- })
- .then(waitForPromises)
- .then(() => {
- expect(vm.$refs.searchInput.focus).toHaveBeenCalled();
- })
- .then(done)
- .catch(done.fail);
+ vm.clearSearchInput();
+
+ await nextTick();
+
+ expect(vm.$refs.searchInput.focus).toHaveBeenCalled();
});
describe('listShowCount', () => {
- it('returns 1 when no filtered entries exist', (done) => {
+ it('returns 1 when no filtered entries exist', () => {
vm.searchText = 'testing 123';
- setImmediate(() => {
- expect(vm.listShowCount).toBe(1);
-
- done();
- });
+ expect(vm.listShowCount).toBe(1);
});
it('returns entries length when not filtered', () => {
@@ -131,26 +110,18 @@ describe('File finder item spec', () => {
expect(vm.listHeight).toBe(55);
});
- it('returns 33 when entries dont exist', (done) => {
+ it('returns 33 when entries dont exist', () => {
vm.searchText = 'testing 123';
- setImmediate(() => {
- expect(vm.listHeight).toBe(33);
-
- done();
- });
+ expect(vm.listHeight).toBe(33);
});
});
describe('filteredBlobsLength', () => {
- it('returns length of filtered blobs', (done) => {
+ it('returns length of filtered blobs', () => {
vm.searchText = 'index';
- setImmediate(() => {
- expect(vm.filteredBlobsLength).toBe(1);
-
- done();
- });
+ expect(vm.filteredBlobsLength).toBe(1);
});
});
@@ -158,7 +129,7 @@ describe('File finder item spec', () => {
it('renders less DOM nodes if not visible by utilizing v-if', async () => {
vm.visible = false;
- await waitForPromises();
+ await nextTick();
expect(vm.$el).toBeInstanceOf(Comment);
});
@@ -166,33 +137,24 @@ describe('File finder item spec', () => {
describe('watches', () => {
describe('searchText', () => {
- it('resets focusedIndex when updated', (done) => {
+ it('resets focusedIndex when updated', async () => {
vm.focusedIndex = 1;
vm.searchText = 'test';
- setImmediate(() => {
- expect(vm.focusedIndex).toBe(0);
+ await nextTick();
- done();
- });
+ expect(vm.focusedIndex).toBe(0);
});
});
describe('visible', () => {
- it('resets searchText when changed to false', (done) => {
+ it('resets searchText when changed to false', async () => {
vm.searchText = 'test';
- vm.visible = true;
-
- waitForPromises()
- .then(() => {
- vm.visible = false;
- })
- .then(waitForPromises)
- .then(() => {
- expect(vm.searchText).toBe('');
- })
- .then(done)
- .catch(done.fail);
+ vm.visible = false;
+
+ await nextTick();
+
+ expect(vm.searchText).toBe('');
});
});
});
@@ -216,7 +178,7 @@ describe('File finder item spec', () => {
});
describe('onKeyup', () => {
- it('opens file on enter key', (done) => {
+ it('opens file on enter key', async () => {
const event = new CustomEvent('keyup');
event.keyCode = ENTER_KEY_CODE;
@@ -224,14 +186,12 @@ describe('File finder item spec', () => {
vm.$refs.searchInput.dispatchEvent(event);
- setImmediate(() => {
- expect(vm.openFile).toHaveBeenCalledWith(vm.files[0]);
+ await nextTick();
- done();
- });
+ expect(vm.openFile).toHaveBeenCalledWith(vm.files[0]);
});
- it('closes file finder on esc key', (done) => {
+ it('closes file finder on esc key', async () => {
const event = new CustomEvent('keyup');
event.keyCode = ESC_KEY_CODE;
@@ -239,11 +199,9 @@ describe('File finder item spec', () => {
vm.$refs.searchInput.dispatchEvent(event);
- setImmediate(() => {
- expect(vm.$emit).toHaveBeenCalledWith('toggle', false);
+ await nextTick();
- done();
- });
+ expect(vm.$emit).toHaveBeenCalledWith('toggle', false);
});
});
@@ -310,34 +268,26 @@ describe('File finder item spec', () => {
});
describe('keyboard shortcuts', () => {
- beforeEach((done) => {
+ beforeEach(async () => {
createComponent();
jest.spyOn(vm, 'toggle').mockImplementation(() => {});
- vm.$nextTick(done);
+ await nextTick();
});
- it('calls toggle on `t` key press', (done) => {
+ it('calls toggle on `t` key press', async () => {
Mousetrap.trigger('t');
- vm.$nextTick()
- .then(() => {
- expect(vm.toggle).toHaveBeenCalled();
- })
- .then(done)
- .catch(done.fail);
+ await nextTick();
+ expect(vm.toggle).toHaveBeenCalled();
});
- it('calls toggle on `mod+p` key press', (done) => {
+ it('calls toggle on `mod+p` key press', async () => {
Mousetrap.trigger('mod+p');
- vm.$nextTick()
- .then(() => {
- expect(vm.toggle).toHaveBeenCalled();
- })
- .then(done)
- .catch(done.fail);
+ await nextTick();
+ expect(vm.toggle).toHaveBeenCalled();
});
it('always allows `mod+p` to trigger toggle', () => {