1
exercism fetch javascript say

say.spec.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
var say = require('./say');

describe('say', function () {
  it('zero', function () {
    expect(say.inEnglish(0)).toBe('zero');
  });

  xit('one', function () {
    expect(say.inEnglish(1)).toBe('one');
  });

  xit('fourteen', function () {
    expect(say.inEnglish(14)).toBe('fourteen');
  });

  xit('twenty', function () {
    expect(say.inEnglish(20)).toBe('twenty');
  });

  xit('twenty-two', function () {
    expect(say.inEnglish(22)).toBe('twenty-two');
  });

  xit('one hundred', function () {
    expect(say.inEnglish(100)).toBe('one hundred');
  });

  xit('one hundred twenty-three', function () {
    expect(say.inEnglish(123)).toBe('one hundred twenty-three');
  });

  xit('one thousand', function () {
    expect(say.inEnglish(1000)).toBe('one thousand');
  });

  xit('one thousand two hundred thirty-four', function () {
    expect(say.inEnglish(1234)).toBe('one thousand two hundred thirty-four');
  });

  xit('one million', function () {
    expect(say.inEnglish(1000000)).toBe('one million');
  });

  xit('one million two', function () {
    expect(say.inEnglish(1000002)).toBe('one million two');
  });

  xit('one million two thousand three hundred forty-five', function () {
    expect(say.inEnglish(1002345))
      .toBe('one million two thousand three hundred forty-five');
  });

  xit('one billion', function () {
    expect(say.inEnglish(1000000000)).toBe('one billion');
  });

  xit('a really big number', function () {
    var expected = 'nine hundred eighty-seven billion ';
    expected += 'six hundred fifty-four million ';
    expected += 'three hundred twenty-one thousand ';
    expected += 'one hundred twenty-three';
    expect(say.inEnglish(987654321123)).toBe(expected);
  });

  xit('raises an error below zero', function () {
    expect(function () {
      say.inEnglish(-1);
    }).toThrow(new Error('Number must be between 0 and 999,999,999,999.'));
  });

  xit('raises an error above 999,999,999,999', function () {
    expect(function () {
      say.inEnglish(1000000000000);
    }).toThrow(new Error('Number must be between 0 and 999,999,999,999.'));
  });
});