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:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-07-05 15:09:46 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-05 15:09:46 +0300
commitf34077e88198da754b4efecd1ce1d996ce982286 (patch)
tree24a176ba93be06eee0ee912215fbeb2611ab7872 /spec/frontend/vue_shared/components/page_size_selector_spec.js
parent402c915cb58cfc658ecbdad368e89fb7b3993c1e (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/vue_shared/components/page_size_selector_spec.js')
-rw-r--r--spec/frontend/vue_shared/components/page_size_selector_spec.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/frontend/vue_shared/components/page_size_selector_spec.js b/spec/frontend/vue_shared/components/page_size_selector_spec.js
new file mode 100644
index 00000000000..5ec0b863afd
--- /dev/null
+++ b/spec/frontend/vue_shared/components/page_size_selector_spec.js
@@ -0,0 +1,44 @@
+import { GlDropdown, GlDropdownItem } from '@gitlab/ui';
+import { shallowMount } from '@vue/test-utils';
+import PageSizeSelector, { PAGE_SIZES } from '~/vue_shared/components/page_size_selector.vue';
+
+describe('Page size selector component', () => {
+ let wrapper;
+
+ const createWrapper = ({ pageSize = 20 } = {}) => {
+ wrapper = shallowMount(PageSizeSelector, {
+ propsData: { value: pageSize },
+ });
+ };
+
+ const findDropdown = () => wrapper.findComponent(GlDropdown);
+ const findDropdownItems = () => wrapper.findAllComponents(GlDropdownItem);
+
+ afterEach(() => {
+ wrapper.destroy();
+ });
+
+ it.each(PAGE_SIZES)('shows expected text in the dropdown button for page size %s', (pageSize) => {
+ createWrapper({ pageSize });
+
+ expect(findDropdown().props('text')).toBe(`Show ${pageSize} items`);
+ });
+
+ it('shows the expected dropdown items', () => {
+ createWrapper();
+
+ PAGE_SIZES.forEach((pageSize, index) => {
+ expect(findDropdownItems().at(index).text()).toBe(`Show ${pageSize} items`);
+ });
+ });
+
+ it('will emit the new page size when a dropdown item is clicked', () => {
+ createWrapper();
+
+ findDropdownItems().wrappers.forEach((itemWrapper, index) => {
+ itemWrapper.vm.$emit('click');
+
+ expect(wrapper.emitted('input')[index][0]).toBe(PAGE_SIZES[index]);
+ });
+ });
+});