UNPKG

2.28 kBJavaScriptView Raw
1/* eslint-env mocha */
2
3const expect = require('chai').expect
4const process = require('process')
5const parseTags = require('../lib/components/state-resources/search/parse-tags-filter')
6
7process.on('unhandledRejection', (reason, p) => {
8 console.log('Unhandled Rejection at: Promise', p, 'reason:', reason)
9 // application specific logging, throwing an error,%20OR%20other logic here
10})
11
12describe('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})