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') }) }) })