const {sum, subtract} = require('./math')
let result, expected
result = sum(3, 7)
expected = 10
expect(result).toBe(expected)
result = subtract(7, 8)
expect(result).positive();
function expect(actual) {
return {
toBe : function(expected) {
if (actual !== expected) {
throw new Error(`${actual} is not equal to ${expected}`)
}
},
positive: function(){
if(actual < 0 ){
throw new Error(`${actual} is not positive `)
}
},
negative: function(){
if(actual > 0 ){
throw new Error(`${actual} is not negative`)
}
}
}
}
//better
const sum = (a, b) => a+b;
const substract = (a,b) => a- b;
result = sum(3, 7)
expected = 10
expect(result).toBe(expected)
result = subtract(7, 8)
expect(result).positive();
function expect(actual) {
return {
toBe : function(expected) {
if (actual !== expected) {
throw new Error(`${actual} is not equal to ${expected}`)
}
},
positive: function(){
if(actual < 0 ){
throw new Error(`${actual} is not positive `)
}
},
negative: function(){
if(actual > 0 ){
throw new Error(`${actual} is not negative`)
}
}
}
}
function test(title, callback) {
try {
callback()
console.log(`✓ ${title}`)
} catch (error) {
console.error(`✕ ${title}`)
console.error(error)
}
}
test('sum adds numbers', () => {
const result = sum(3, 7)
const expected = 10
expect(result).toBe(expected)
})
test('subtract subtracts numbers', () => {
const result = subtract(7, 3)
const expected = 4
expect(result).toBe(expected)
})