UNPKG

3.3 kBJavaScriptView Raw
1
2import { compose } from './swuquery-compose';
3
4it('should pass', () => {
5 expect(true).toBe(true);
6})
7
8it('should compose generic queries', () => {
9 expect(compose({
10 query: true
11 })).toBe('Q');
12 expect(compose({
13 query: true,
14 style: true
15 })).toBe('Q-');
16})
17
18it('should compose prefix queries', () => {
19 expect(compose({
20 query: true,
21 prefix: { required: true }
22 })).toBe('QT');
23 expect(compose({
24 query: true,
25 prefix: { required: true },
26 style: true
27 })).toBe('QT-');
28 expect(compose({
29 query: true,
30 prefix: {
31 required: true,
32 parts: [
33 '񀀁',
34 ['񀀁', '񆆑'],
35 '񆇡'
36 ]
37 }
38 })).toBe('QA񀀁R񀀁񆆑񆇡T');
39 expect(compose({
40 query: true,
41 prefix: {
42 required: true,
43 parts: [
44 [
45 'or',
46 '񀀁',
47 ['񀀁', '񆆑']
48 ],
49 '񆇡'
50 ]
51 }
52 })).toBe('QA񀀁oR񀀁񆆑񆇡T');
53})
54
55it('should compose signbox queries', () => {
56 expect(compose({
57 query: true,
58 signbox: [
59 { symbol: '񆀁' }
60 ]
61 })).toBe('Q񆀁');
62 expect(compose({
63 query: true,
64 signbox: [
65 {
66 symbol: '񆀁fr',
67 coord: [500, 500]
68 }
69 ]
70 })).toBe('Q񆀁fr𝤆𝤆');
71 expect(compose({
72 query: true,
73 signbox: [
74 { range: ['񀀁', '񀇡'] }
75 ]
76 })).toBe('QR񀀁񀇡');
77 expect(compose({
78 query: true,
79 signbox: [
80 {
81 range: ['񀀁', '񀇡'],
82 coord: [500, 500]
83 }
84 ]
85 })).toBe('QR񀀁񀇡𝤆𝤆');
86 expect(compose({
87 query: true,
88 signbox: [
89 { symbol: '񆀁r' },
90 {
91 range: ['񀀁', '񀇡'],
92 coord: [500, 500]
93 }
94 ]
95 })).toBe('Q񆀁rR񀀁񀇡𝤆𝤆');
96 expect(compose({
97 query: true,
98 signbox: [
99 {
100 or: [
101 '񆀁r',
102 ['񀀁', '񀇡']
103 ],
104 coord: [500, 500]
105 }
106 ]
107 })).toBe('Q񆀁roR񀀁񀇡𝤆𝤆');
108})
109
110it('should not break on invalid input', () => {
111 expect(compose()).toBe(undefined);
112 expect(compose('a')).toBe(undefined);
113 expect(compose({ 'a': 5 })).toBe(undefined);
114 expect(compose(['a'])).toBe(undefined);
115})
116
117it('should not break on mangled input', () => {
118 expect(compose({
119 query: true,
120 prefix: {
121 required: true,
122 parts: [
123 'x',
124 ['100', '204'],
125 'S20500'
126 ]
127 }
128 })).toBe('Q');
129 expect(compose({
130 query: true,
131 prefix: {
132 required: true,
133 parts: [
134 ['444', '204'],
135 'S20500'
136 ]
137 }
138 })).toBe('Q');
139 expect(compose({
140 query: true,
141 prefix: {
142 required: true,
143 parts: 'xx'
144 }
145 })).toBe('QT');
146 expect(compose({
147 query: true,
148 prefix: {
149 required: true,
150 parts: [{ a: 'xx' }]
151 }
152 })).toBe('Q');
153 expect(compose({
154 query: true,
155 signbox: [
156 { symbolx: 'S20000' },
157 {
158 rangex: ['100', '105'],
159 coord: [500, 500]
160 }
161 ]
162 })).toBe('Q');
163 expect(compose({
164 query: true,
165 signbox: [
166 { symbol: 'x' },
167 {
168 rangex: ['100', '105'],
169 coord: [500, 500]
170 }
171 ]
172 })).toBe('Q');
173})