1 |
|
2 |
|
3 | const expect = require('chai').expect
|
4 | const process = require('process')
|
5 | const parseTags = require('../lib/components/state-resources/search/parse-tags-filter')
|
6 |
|
7 | process.on('unhandledRejection', (reason, p) => {
|
8 | console.log('Unhandled Rejection at: Promise', p, 'reason:', reason)
|
9 |
|
10 | })
|
11 |
|
12 | describe('search tags tests', function () {
|
13 | this.timeout(process.env.TIMEOUT || 5000)
|
14 |
|
15 | const tests = [
|
16 | {
|
17 | input: ['NO_INCIDENT', 'Highgate (C01)'],
|
18 | expected: `tags:("NO_INCIDENT"%20AND%20"Highgate%20(C01)")`,
|
19 | desc: `NO_INCIDENT AND Highgate (C01)`
|
20 | },
|
21 | {
|
22 | input: [['CANCELLED'], 'NO_INCIDENT', 'Highgate (C01)'],
|
23 | expected: `tags:("CANCELLED"%20AND%20"NO_INCIDENT"%20AND%20"Highgate%20(C01)")`,
|
24 | desc: `CANCELLED AND NO_INCIDENT AND Highgate (C01)`
|
25 | },
|
26 | {
|
27 | input: ['NO_INCIDENT', 'Highgate (C01)', ['CANCELLED']],
|
28 | expected: `tags:("NO_INCIDENT"%20AND%20"Highgate%20(C01)"%20AND%20"CANCELLED")`,
|
29 | desc: `NO_INCIDENT AND Highgate (C01) AND CANCELLED`
|
30 | },
|
31 | {
|
32 | input: [['CANCELLED', 'CONFIRMED'], 'NO_INCIDENT', 'Highgate (C01)'],
|
33 | expected: `tags:(("CANCELLED"%20OR%20"CONFIRMED")%20AND%20"NO_INCIDENT"%20AND%20"Highgate%20(C01)")`,
|
34 | desc: `(CANCELLED OR CONFIRMED) AND NO_INCIDENT AND Highgate (C01)`
|
35 | },
|
36 | {
|
37 | input: ['NO_INCIDENT', 'Highgate (C01)', ['CANCELLED', 'CONFIRMED']],
|
38 | expected: `tags:("NO_INCIDENT"%20AND%20"Highgate%20(C01)"%20AND%20("CANCELLED"%20OR%20"CONFIRMED"))`,
|
39 | desc: `NO_INCIDENT AND Highgate (C01) AND (CANCELLED OR CONFIRMED)`
|
40 | },
|
41 | {
|
42 | input: [['CANCELLED', 'CONFIRMED']],
|
43 | expected: `tags:(("CANCELLED"%20OR%20"CONFIRMED"))`,
|
44 | desc: `(CANCELLED OR CONFIRMED)`
|
45 | },
|
46 | {
|
47 | input: [['CANCELLED', 'CONFIRMED'], ['NO_INCIDENT', 'Highgate (C01)']],
|
48 | expected: `tags:(("CANCELLED"%20OR%20"CONFIRMED")%20AND%20("NO_INCIDENT"%20OR%20"Highgate%20(C01)"))`,
|
49 | desc: `(CANCELLED OR CONFIRMED) AND (NO_INCIDENT OR Highgate (C01))`
|
50 | }
|
51 | ]
|
52 |
|
53 | for (const { input, expected, desc } of tests) {
|
54 | it(`Search tags - ${desc}`, () => {
|
55 | const tags = parseTags(input)
|
56 | expect(tags).to.eql('%20AND%20' + expected)
|
57 | })
|
58 | }
|
59 | })
|