From 434d970b7f824375ff74b3baeb778c0ac52dac56 Mon Sep 17 00:00:00 2001 From: Clement Ho Date: Tue, 11 Apr 2017 15:36:32 -0500 Subject: [skip ci] add tests for deploy keys --- .../deploy_keys/components/deploy_keys.js | 3 ++ .../deploy_keys/components/deploy_key_spec.js | 2 +- .../deploy_keys/components/deploy_keys_spec.js | 58 ++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/deploy_keys/components/deploy_keys.js b/app/assets/javascripts/deploy_keys/components/deploy_keys.js index 9faeb0f29a5..2c649c7732b 100644 --- a/app/assets/javascripts/deploy_keys/components/deploy_keys.js +++ b/app/assets/javascripts/deploy_keys/components/deploy_keys.js @@ -36,6 +36,9 @@ export default Vue.component('deploy-keys', { this.sections[2].keys = data.public_keys; this.loaded = true; + }).catch((e) => { + this.loaded = true; + throw e; }); }, methods: { diff --git a/spec/javascripts/deploy_keys/components/deploy_key_spec.js b/spec/javascripts/deploy_keys/components/deploy_key_spec.js index ff695340e91..20786a5a16b 100644 --- a/spec/javascripts/deploy_keys/components/deploy_key_spec.js +++ b/spec/javascripts/deploy_keys/components/deploy_key_spec.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import deployKeyComponent from '~/deploy_keys/components/deploy_key'; -fdescribe('DeployKey', () => { +describe('DeployKey', () => { const propsData = { id: 1, title: 'title', diff --git a/spec/javascripts/deploy_keys/components/deploy_keys_spec.js b/spec/javascripts/deploy_keys/components/deploy_keys_spec.js index e69de29bb2d..9c916f6b7fe 100644 --- a/spec/javascripts/deploy_keys/components/deploy_keys_spec.js +++ b/spec/javascripts/deploy_keys/components/deploy_keys_spec.js @@ -0,0 +1,58 @@ +import Vue from 'vue'; +import deployKeysComponent from '~/deploy_keys/components/deploy_keys'; +import DeployKeysService from '~/deploy_keys/services/deploy_keys_service'; + +fdescribe('DeployKeys', () => { + describe('created', () => { + it('should call service.get()', () => { + const DeployKeysComponent = Vue.extend(deployKeysComponent); + const component = new DeployKeysComponent(); + + spyOn(DeployKeysService.prototype, 'constructor').and.callFake(() => { + return { + get: () => Promise.resolve({ + data: { + enabled_keys: [], + available_project_keys: [], + public_keys: [], + } + }), + }; + }); + + component.$mount(); + + setTimeout(() => expect(component.loaded).toEqual(true), 0); + }); + + it('should dismiss loaded when service.get() fails', () => { + const DeployKeysComponent = Vue.extend(deployKeysComponent); + const component = new DeployKeysComponent(); + + spyOn(DeployKeysService.prototype, 'constructor').and.callFake(() => { + return { + get: () => Promise.reject(), + }; + }); + + component.$mount(); + + setTimeout(() => expect(component.loaded).toEqual(true), 0); + }); + }); + + describe('methods', () => { + describe('enableKeyInSectionIndex', () => { + it('should return true if index is greater than 0', () => { + const DeployKeysComponent = Vue.extend(deployKeysComponent); + const component = new DeployKeysComponent().$mount(); + + expect(component.enableKeyInSectionIndex(1)).toEqual(true); + }); + }); + }); + + describe('template', () => { + it('should render section if renderSection()', () => {}); + }); +}); -- cgit v1.2.1