diff options
author | Clement Ho <ClemMakesApps@gmail.com> | 2017-10-06 09:40:51 -0500 |
---|---|---|
committer | Clement Ho <ClemMakesApps@gmail.com> | 2017-10-06 09:40:51 -0500 |
commit | d51ebe41ccae971db4b9c01aaee04350c38e0265 (patch) | |
tree | 453962303700f819a7d4740126de82444c52704f /spec/javascripts/image_diff/image_badge_spec.js | |
parent | 33112651cf47713eeba07cbdb2bc9cd45ae95d01 (diff) | |
download | gitlab-ce-ch-add-specs.tar.gz |
Add javascript unit testsch-add-specs
Diffstat (limited to 'spec/javascripts/image_diff/image_badge_spec.js')
-rw-r--r-- | spec/javascripts/image_diff/image_badge_spec.js | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/spec/javascripts/image_diff/image_badge_spec.js b/spec/javascripts/image_diff/image_badge_spec.js new file mode 100644 index 00000000000..4d8c9f6623b --- /dev/null +++ b/spec/javascripts/image_diff/image_badge_spec.js @@ -0,0 +1,90 @@ +import ImageBadge from '~/image_diff/image_badge'; +import imageDiffHelper from '~/image_diff/helpers/index'; + +describe('ImageBadge', () => { + const noteId = 'noteId'; + const discussionId = 'discussionId'; + const options = { + noteId, + discussionId, + }; + const meta = { + x: 1, + y: 1, + width: 1, + height: 1, + }; + + it('should save actual property', () => { + const imageBadge = new ImageBadge(Object.assign({}, options, { + actual: meta, + })); + + const { actual } = imageBadge; + expect(actual.x).toEqual(meta.x); + expect(actual.y).toEqual(meta.y); + expect(actual.width).toEqual(meta.width); + expect(actual.height).toEqual(meta.height); + }); + + it('should save browser property', () => { + const imageBadge = new ImageBadge(Object.assign({}, options, { + browser: meta, + })); + + const { browser } = imageBadge; + expect(browser.x).toEqual(meta.x); + expect(browser.y).toEqual(meta.y); + expect(browser.width).toEqual(meta.width); + expect(browser.height).toEqual(meta.height); + }); + + it('should save noteId', () => { + const imageBadge = new ImageBadge(options); + expect(imageBadge.noteId).toEqual(noteId); + }); + + it('should save discussionId', () => { + const imageBadge = new ImageBadge(options); + expect(imageBadge.discussionId).toEqual(discussionId); + }); + + describe('default values', () => { + let imageBadge; + + beforeEach(() => { + imageBadge = new ImageBadge(options); + }); + + it('should return defaultMeta if actual property is not provided', () => { + const { actual } = imageBadge; + expect(actual.x).toEqual(0); + expect(actual.y).toEqual(0); + expect(actual.width).toEqual(0); + expect(actual.height).toEqual(0); + }); + + it('should return defaultMeta if browser property is not provided', () => { + const { browser } = imageBadge; + expect(browser.x).toEqual(0); + expect(browser.y).toEqual(0); + expect(browser.width).toEqual(0); + expect(browser.height).toEqual(0); + }); + }); + + describe('imageEl property is provided and not browser property', () => { + beforeEach(() => { + spyOn(imageDiffHelper, 'resizeCoordinatesToImageElement').and.returnValue(true); + }); + + it('should generate browser property', () => { + const imageBadge = new ImageBadge(Object.assign({}, options, { + imageEl: document.createElement('img'), + })); + + expect(imageDiffHelper.resizeCoordinatesToImageElement).toHaveBeenCalled(); + expect(imageBadge.browser).toEqual(true); + }); + }); +}); |