summaryrefslogtreecommitdiff
path: root/spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js')
-rw-r--r--spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js b/spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js
new file mode 100644
index 00000000000..3f1eebbc6a5
--- /dev/null
+++ b/spec/frontend/ci/ci_variable_list/components/ci_group_variables_spec.js
@@ -0,0 +1,73 @@
+import { shallowMount } from '@vue/test-utils';
+import { convertToGraphQLId } from '~/graphql_shared/utils';
+
+import ciGroupVariables from '~/ci/ci_variable_list/components/ci_group_variables.vue';
+import ciVariableShared from '~/ci/ci_variable_list/components/ci_variable_shared.vue';
+
+import { GRAPHQL_GROUP_TYPE } from '~/ci/ci_variable_list/constants';
+
+const mockProvide = {
+ glFeatures: {
+ groupScopedCiVariables: false,
+ },
+ groupPath: '/group',
+ groupId: 12,
+};
+
+describe('Ci Group Variable wrapper', () => {
+ let wrapper;
+
+ const findCiShared = () => wrapper.findComponent(ciVariableShared);
+
+ const createComponent = ({ provide = {} } = {}) => {
+ wrapper = shallowMount(ciGroupVariables, {
+ provide: { ...mockProvide, ...provide },
+ });
+ };
+
+ afterEach(() => {
+ wrapper.destroy();
+ });
+
+ describe('Props', () => {
+ beforeEach(() => {
+ createComponent();
+ });
+
+ it('are passed down the correctly to ci_variable_shared', () => {
+ expect(findCiShared().props()).toEqual({
+ id: convertToGraphQLId(GRAPHQL_GROUP_TYPE, mockProvide.groupId),
+ areScopedVariablesAvailable: false,
+ componentName: 'GroupVariables',
+ entity: 'group',
+ fullPath: mockProvide.groupPath,
+ hideEnvironmentScope: false,
+ mutationData: wrapper.vm.$options.mutationData,
+ queryData: wrapper.vm.$options.queryData,
+ refetchAfterMutation: false,
+ });
+ });
+ });
+
+ describe('feature flag', () => {
+ describe('When enabled', () => {
+ beforeEach(() => {
+ createComponent({ provide: { glFeatures: { groupScopedCiVariables: true } } });
+ });
+
+ it('Passes down `true` to variable shared component', () => {
+ expect(findCiShared().props('areScopedVariablesAvailable')).toBe(true);
+ });
+ });
+
+ describe('When disabled', () => {
+ beforeEach(() => {
+ createComponent({ provide: { glFeatures: { groupScopedCiVariables: false } } });
+ });
+
+ it('Passes down `false` to variable shared component', () => {
+ expect(findCiShared().props('areScopedVariablesAvailable')).toBe(false);
+ });
+ });
+ });
+});