UNPKG

cerebro-math

Version:

Basic math operations plugin for cerebro app

84 lines (75 loc) 2.01 kB
const math = require('../src/index') const { assert } = require('chai') describe('Math plugin', () => { it('callback called with correct object', (done) => { const term = '5 + 6' const display = (result) => { assert(result.clipboard === '11') assert(result.title === '= 11') assert(result.term === '5 + 6 = 11') done() } math.fn({ term, display }) }) it('formats infinity', (done) => { const term = '1 / 0' const display = (result) => { assert(result.clipboard === '∞') assert(result.title === '= ∞') assert(result.term === '1 / 0 = ∞') done() } math.fn({ term, display }) }) it('shows indeterminate', (done) => { const term = '0 / 0' const display = (result) => { assert(result.title === '= indeterminate') assert(!!result.getPreview) done() } math.fn({ term, display }) }) context('calculates with complex expressions: ', () => { it(' :several operations', (done) => { const term = '5 * 6 - 10' const display = (result) => { assert(result.title === '= 20') done() } math.fn({ term, display }) }) it('brackets', (done) => { const term = '5 * (6 - 10)' const display = (result) => { assert(result.title === '= -20') done() } math.fn({ term, display }) }) it('floats', (done) => { const term = '1.1 + 3.2' const display = (result) => { assert(result.title === '= 4.3') done() } math.fn({ term, display }) }) it('floats with commas', (done) => { const term = '1,1 + 3,2' const display = (result) => { assert(result.title === '= 4.3') done() } math.fn({ term, display }) }) it('negatives', (done) => { const term = '-10 + 60' const display = (result) => { assert(result.title === '= 50') done() } math.fn({ term, display }) }) }) })