diff options
author | Phil Hughes <me@iamphill.com> | 2019-02-05 20:28:27 +0300 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2019-02-05 20:28:27 +0300 |
commit | 91b1e9dc77eea57535e1f43c6f32d60d0ee34217 (patch) | |
tree | 84b0b6111e64de026d9b015e98dc0afbd92af3a0 /spec | |
parent | 8b02d58edeab14cfce9af5fdf8bbd9defe7e0c4b (diff) | |
parent | b3bd24053e502da61557e2100fb19ae20e0b6dec (diff) |
Merge branch 'adriel-use-svg-icon-for-deployment-series' into 'master'
Use SVG icon for deployment series
See merge request gitlab-org/gitlab-ce!24652
Diffstat (limited to 'spec')
-rw-r--r-- | spec/javascripts/lib/utils/icon_utils_spec.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/spec/javascripts/lib/utils/icon_utils_spec.js b/spec/javascripts/lib/utils/icon_utils_spec.js new file mode 100644 index 00000000000..3fd3940efe8 --- /dev/null +++ b/spec/javascripts/lib/utils/icon_utils_spec.js @@ -0,0 +1,67 @@ +import MockAdapter from 'axios-mock-adapter'; +import axios from '~/lib/utils/axios_utils'; +import * as iconUtils from '~/lib/utils/icon_utils'; + +describe('Icon utils', () => { + describe('getSvgIconPathContent', () => { + let spriteIcons; + + beforeAll(() => { + spriteIcons = gon.sprite_icons; + gon.sprite_icons = 'mockSpriteIconsEndpoint'; + }); + + afterAll(() => { + gon.sprite_icons = spriteIcons; + }); + + let axiosMock; + let mockEndpoint; + let getIcon; + const mockName = 'mockIconName'; + const mockPath = 'mockPath'; + + beforeEach(() => { + axiosMock = new MockAdapter(axios); + mockEndpoint = axiosMock.onGet(gon.sprite_icons); + getIcon = iconUtils.getSvgIconPathContent(mockName); + }); + + afterEach(() => { + axiosMock.restore(); + }); + + it('extracts svg icon path content from sprite icons', done => { + mockEndpoint.replyOnce( + 200, + `<svg><symbol id="${mockName}"><path d="${mockPath}"/></symbol></svg>`, + ); + getIcon + .then(path => { + expect(path).toBe(mockPath); + done(); + }) + .catch(done.fail); + }); + + it('returns null if icon path content does not exist', done => { + mockEndpoint.replyOnce(200, ``); + getIcon + .then(path => { + expect(path).toBe(null); + done(); + }) + .catch(done.fail); + }); + + it('returns null if an http error occurs', done => { + mockEndpoint.replyOnce(500); + getIcon + .then(path => { + expect(path).toBe(null); + done(); + }) + .catch(done.fail); + }); + }); +}); |