token-wizard/test/stores/StatsStore.spec.js

63 lines
1.9 KiB
JavaScript

import StatsStore from '../../src/stores/StatsStore'
describe('StatsStore', () => {
let statsStore
beforeEach(() => {
statsStore = new StatsStore()
})
it(`Should not exist property for multiple cases`, () => {
// Given
const testCases = [
{ property: 'wrong1', value: '1' },
{ property: 'wrong2', value: '1' },
{ property: 'wrong3', value: '1' },
{ property: 'wrong4', value: '1' }
]
testCases.forEach(({ property, value }) => {
// When
const invalidProperty = () => statsStore.setProperty(property, value)
// Then
expect(invalidProperty).toThrow(`${property} is not declared as a property`)
})
})
it(`Should not exist property`, () => {
// Given
const property = 'wrong1'
const value = 1
// When
const invalidProperty = () => statsStore.setProperty(property, value)
// Then
expect(invalidProperty).toThrow(`${property} is not declared as a property`)
})
it(`should return expected value for property`, () => {
// When
const testCases = [
{ property: 'totalEthRaised', value: 'totalEthRaised' },
{ property: 'totalCrowdsales', value: 'totalCrowdsales' },
{ property: 'percentageOfWhitelisted', value: 'percentageOfWhitelisted' },
{ property: 'percentageOfFinalized', value: 'percentageOfFinalized' },
{ property: 'percentageOfMultiTiers', value: 'percentageOfMultiTiers' },
{ property: 'percentageOfReserved', value: 'percentageOfReserved' },
{ property: 'totalInvolvedContributorsAmount', value: 'totalInvolvedContributorsAmount' },
{ property: 'maxTiersAmount', value: 'maxTiersAmount' },
{ property: 'maxEthRaised', value: 'maxEthRaised' }
]
testCases.forEach(({ property, value }) => {
// When
statsStore.setProperty(property, value)
// Then
expect(statsStore[property]).toBe(value)
})
})
})