From 8d6408fb5341458f553874e21b20e7d65f13a22f Mon Sep 17 00:00:00 2001 From: John Mitchell Date: Wed, 21 Jun 2017 15:40:13 -0400 Subject: [PATCH] add MultiCredentialService.updateCredentialTags unit tests --- .../multi-credential.service-test.js | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 awx/ui/tests/spec/multi-credential/multi-credential.service-test.js diff --git a/awx/ui/tests/spec/multi-credential/multi-credential.service-test.js b/awx/ui/tests/spec/multi-credential/multi-credential.service-test.js new file mode 100644 index 0000000000..60b24b52a5 --- /dev/null +++ b/awx/ui/tests/spec/multi-credential/multi-credential.service-test.js @@ -0,0 +1,100 @@ +'use strict' + +describe('MultiCredentialService', () => { + let MultiCredentialService; + + beforeEach(angular.mock.module('multiCredential', + ($provide) => { + ['Rest', 'ProcessErrors', '$q', 'GetBasePath'] + .forEach(item => $provide.value(item, {})); + })); + + beforeEach(angular.mock.inject((_MultiCredentialService_) => { + MultiCredentialService = _MultiCredentialService_; + })); + + describe('updateCredentialTags', () => { + it('should return array of selected credentials (empty)', () => { + let creds = { + machine: null, + extra: [] + }; + + let typeOpts = []; + + let expected = []; + + let actual = MultiCredentialService + .updateCredentialTags(creds, typeOpts); + + let equal = _.isEqual(expected.sort(), actual.sort()); + + expect(equal).toBe(true); + }); + + it('should return array of selected credentials (populated)', () => { + let creds = { + machine: { + credential_type: 1, + id: 3, + name: 'ssh' + }, + extra: [ + { + credential_type: 2, + id: 4, + name: 'aws' + }, + { + credential_type: 3, + id: 5, + name: 'gce' + } + ] + }; + + let typeOpts = [ + { + name: 'SSH', + value: 1 + }, + { + name: 'Amazon Web Services', + value: 2 + }, + { + name: 'Google Compute Engine', + value: 3 + } + ]; + + let expected = [ + { + name: 'ssh', + id: 3, + postType: 'machine', + kind: 'SSH:' + }, + { + name: 'aws', + id: 4, + postType: 'extra', + kind: 'Amazon Web Services:' + }, + { + name: 'gce', + id: 5, + postType: 'extra', + kind: 'Google Compute Engine:' + } + ]; + + let actual = MultiCredentialService + .updateCredentialTags(creds, typeOpts); + + let equal = _.isEqual(expected.sort(), actual.sort()); + + expect(equal).toBe(true); + }); + }); +});