-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.spec.ts
102 lines (97 loc) · 2.02 KB
/
index.spec.ts
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import { yeehaw, yeehawAll } from './index';
describe('valid strings', () => {
it.each([
'yeehaw',
'heeyaw',
'yeeyaw',
'yeeyee',
'hawhaw',
'yahyah',
'hawyee',
'yawhee',
'heehaw',
'yee haw',
'hee yaw',
'yee yaw',
'yee yee',
'haw haw',
'yah yah',
'haw yee',
'yaw hee',
'hee haw',
'yee.haw',
'hee.yaw',
'yee.yaw',
'yee.yee',
'haw.haw',
'yah.yah',
'haw.yee',
'yaw.hee',
'hee.haw',
'YEEHAW',
'YEE HAW',
'can I get a YEEEEHAWWWW!?',
'yee-haw',
'yeeeeeeee hawwwwwwww',
'haw hee',
'haaaaaaaaaw yee',
'hah hah',
'hee hee',
])('"%s" matches', (str) => {
expect(yeehaw.test(str)).toBe(true);
});
});
describe('invalid strings', () => {
it.each([
'yee',
'haw',
'yyy hhh',
'yh',
'y h',
'ygh hgh',
'yeha',
'ye ha',
'yeeha',
'yee ha',
'yehaw',
'ye haw',
'yee flippin haw',
'lots of yee words and haws mixed throughout yeeeee but never enough haws',
'have heard',
'yet however',
'you hooligan',
'yesterday hotdish',
'hahahaha',
'hahahah',
'hahaha',
'hahah',
'haha',
'yon hurl',
'yall hollow',
'you hisadone',
'yoway hinger',
'yedhed',
'heeeeaaaaaa yeeeeeeeeeow',
'yee hawh',
'yee hahw',
])('"%s" does not match', (str) => {
expect(yeehaw.test(str)).toBe(false);
});
});
describe('exec matches', () => {
it('only matches once per string', () => {
expect(yeehaw.exec('yee haw yee haw yee haw yee haw')).toHaveLength(1);
});
it("in the middle of a sentence it's time for some yee haw hee haw yeeee hoi", () => {
const str =
"in the middle of a sentence it's time for some yee haw hee haw yeeee hoi";
expect(yeehaw.exec(str)![0]).toBe('yee haw');
});
});
it('matches all occurrences using yeehawAll', () => {
expect(
'some text yee haw more text. hEe haW, oh look at that, hee yah!'.match(
yeehawAll
)
).toEqual(['yee haw', 'hEe haW', 'hee yah']);
});