From 61cb7dd7c2cc230f99eb4d8ebacc131acbf5d262 Mon Sep 17 00:00:00 2001 From: Alina Beck Date: Mon, 11 Nov 2019 16:28:39 +0300 Subject: [PATCH] add ProgressBar tests --- .../ProgressBar/ProgressBar.spec.js | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 webapp/components/ProgressBar/ProgressBar.spec.js diff --git a/webapp/components/ProgressBar/ProgressBar.spec.js b/webapp/components/ProgressBar/ProgressBar.spec.js new file mode 100644 index 000000000..6fb6f1666 --- /dev/null +++ b/webapp/components/ProgressBar/ProgressBar.spec.js @@ -0,0 +1,65 @@ +import { mount } from '@vue/test-utils' +import ProgressBar from './ProgressBar' + +describe('ProgessBar.vue', () => { + let propsData + + beforeEach(() => { + propsData = { + goal: 50000, + progress: 10000, + } + }) + + const Wrapper = () => mount(ProgressBar, { propsData }) + + describe('given only goal and progress', () => { + it('renders no title', () => { + expect( + Wrapper() + .find('.progress-bar__title') + .exists(), + ).toBe(false) + }) + + it('renders no label', () => { + expect( + Wrapper() + .find('.progress-bar__label') + .exists(), + ).toBe(false) + }) + + it('calculates the progress bar width as a percentage of the goal', () => { + expect(Wrapper().vm.progressBarWidth).toBe('width: 20%;') + }) + }) + + describe('given a title', () => { + beforeEach(() => { + propsData.title = 'This is progress' + }) + + it('renders the title', () => { + expect( + Wrapper() + .find('.progress-bar__title') + .text(), + ).toBe('This is progress') + }) + }) + + describe('given a label', () => { + beforeEach(() => { + propsData.label = 'Going well' + }) + + it('renders the label', () => { + expect( + Wrapper() + .find('.progress-bar__label') + .text(), + ).toBe('Going well') + }) + }) +})