1 |
|
2 | import { compose } from './swuquery-compose';
|
3 |
|
4 | it('should pass', () => {
|
5 | expect(true).toBe(true);
|
6 | })
|
7 |
|
8 | it('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 |
|
18 | it('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('QART');
|
39 | expect(compose({
|
40 | query: true,
|
41 | prefix: {
|
42 | required: true,
|
43 | parts: [
|
44 | [
|
45 | 'or',
|
46 | '',
|
47 | ['', '']
|
48 | ],
|
49 | ''
|
50 | ]
|
51 | }
|
52 | })).toBe('QAoRT');
|
53 | })
|
54 |
|
55 | it('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('Qfr𝤆𝤆');
|
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('QrR𝤆𝤆');
|
96 | expect(compose({
|
97 | query: true,
|
98 | signbox: [
|
99 | {
|
100 | or: [
|
101 | 'r',
|
102 | ['', '']
|
103 | ],
|
104 | coord: [500, 500]
|
105 | }
|
106 | ]
|
107 | })).toBe('QroR𝤆𝤆');
|
108 | })
|
109 |
|
110 | it('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 |
|
117 | it('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 | })
|