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>2020-03-26 12:07:52 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-26 12:07:52 +0300
commit7e019504f5ac6decde690565857238e7e59aa034 (patch)
treefab8832b40e25fc9bc1ae54b9303b95ea146b5d5 /spec/frontend/vue_shared/components/ordered_layout_spec.js
parent116d4e56e83a1f408afe710ce070e699ba206475 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/vue_shared/components/ordered_layout_spec.js')
-rw-r--r--spec/frontend/vue_shared/components/ordered_layout_spec.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/spec/frontend/vue_shared/components/ordered_layout_spec.js b/spec/frontend/vue_shared/components/ordered_layout_spec.js
new file mode 100644
index 00000000000..e8667d9ee4a
--- /dev/null
+++ b/spec/frontend/vue_shared/components/ordered_layout_spec.js
@@ -0,0 +1,63 @@
+import { mount } from '@vue/test-utils';
+import orderedLayout from '~/vue_shared/components/ordered_layout.vue';
+
+const children = `
+ <template v-slot:header>
+ <header></header>
+ </template>
+ <template v-slot:footer>
+ <footer></footer>
+ </template>
+ `;
+
+const TestComponent = {
+ components: { orderedLayout },
+ template: `
+ <div>
+ <ordered-layout v-bind="$attrs">
+ ${children}
+ </ordered-layout>
+ </div>
+ `,
+};
+
+const regularSlotOrder = ['header', 'footer'];
+
+describe('Ordered Layout', () => {
+ let wrapper;
+
+ const verifyOrder = () =>
+ wrapper.findAll('footer,header').wrappers.map(x => (x.is('footer') ? 'footer' : 'header'));
+
+ const createComponent = (props = {}) => {
+ wrapper = mount(TestComponent, {
+ propsData: props,
+ });
+ };
+
+ afterEach(() => {
+ wrapper.destroy();
+ });
+
+ describe('when slotKeys are in initial slot order', () => {
+ beforeEach(() => {
+ createComponent({ slotKeys: regularSlotOrder });
+ });
+
+ it('confirms order of the component is reflective of slotKeys', () => {
+ expect(verifyOrder()).toEqual(regularSlotOrder);
+ });
+ });
+
+ describe('when slotKeys reverse the order of the props', () => {
+ const reversedSlotOrder = regularSlotOrder.reverse();
+
+ beforeEach(() => {
+ createComponent({ slotKeys: reversedSlotOrder });
+ });
+
+ it('confirms order of the component is reflective of slotKeys', () => {
+ expect(verifyOrder()).toEqual(reversedSlotOrder);
+ });
+ });
+});