summaryrefslogtreecommitdiff
path: root/spec/javascripts/vue_shared/components/projects_list/project_visibility_level_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/javascripts/vue_shared/components/projects_list/project_visibility_level_spec.js')
-rw-r--r--spec/javascripts/vue_shared/components/projects_list/project_visibility_level_spec.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/spec/javascripts/vue_shared/components/projects_list/project_visibility_level_spec.js b/spec/javascripts/vue_shared/components/projects_list/project_visibility_level_spec.js
new file mode 100644
index 00000000000..9983e200391
--- /dev/null
+++ b/spec/javascripts/vue_shared/components/projects_list/project_visibility_level_spec.js
@@ -0,0 +1,64 @@
+import Vue from 'vue';
+import ProjectVisibilityLevel from '~/vue_shared/components/projects_list/project_visibility_level.vue';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
+
+// TODO: move to shallow mount / vue test utils ??
+
+loadJSONFixtures('projects.json');
+// const projects = getJSONFixture('projects.json');
+let vm;
+
+const createComponent = (props, defaultComponent = ProjectVisibilityLevel) => {
+ const Component = Vue.extend(defaultComponent);
+
+ return mountComponent(Component, props);
+};
+
+describe('ProjectVisibilityLevel', () => {
+ const defaultAccess = 'Maintainer';
+ beforeEach(() => {
+ vm = createComponent(
+ {
+ isExploreProjectsTab: false,
+ accessLevel: 30,
+ humanAccess: defaultAccess,
+ },
+ ProjectVisibilityLevel,
+ );
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ it(`renders if we are not on the explore tab and receive 'accessLevel' and 'humanAccess' props`, () => {
+ expect(vm.showAccessLevel).toBe(true);
+ expect(vm.$el.querySelector('.user-access-role').textContent).toBe(defaultAccess);
+ });
+
+ it(`does not render if 'accessLevel' is 0`, () => {
+ vm = createComponent(
+ {
+ isExploreProjectsTab: false,
+ accessLevel: 0,
+ humanAccess: defaultAccess,
+ },
+ ProjectVisibilityLevel,
+ );
+
+ expect(vm.showAccessLevel).toBe(false);
+ });
+
+ it(`does not render if we are on the explore project tab`, () => {
+ vm = createComponent(
+ {
+ isExploreProjectsTab: true,
+ accessLevel: 0,
+ humanAccess: defaultAccess,
+ },
+ ProjectVisibilityLevel,
+ );
+
+ expect(vm.showAccessLevel).toBe(false);
+ });
+});