Skip to content

Commit 9d51e1b

Browse files
committed
add tests
1 parent 6f2bf64 commit 9d51e1b

File tree

2 files changed

+140
-0
lines changed

2 files changed

+140
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
cube('unusualDataTypes', {
2+
sql: `SELECT
3+
1 AS id,
4+
100 AS amount,
5+
'new' AS status,
6+
'{"key": "value1", "number": 42}'::json AS json_column,
7+
'{"key": "value1", "number": 42}'::jsonb AS jsonb_column,
8+
ARRAY[1, 2, 3] AS array_column,
9+
'11:22:33:44:55:66'::macaddr AS mac_address,
10+
'192.168.0.1'::inet AS inet_column,
11+
'192.168.0.0/24'::cidr AS cidr_column,
12+
't'::boolean AS boolean_column,
13+
'Hello, world!'::text AS text_column,
14+
'1.0, 1.0'::point AS point_column,
15+
'11111111'::bit(8) AS bit_column,
16+
'<root><child>data</child></root>'::xml AS xml_column
17+
UNION ALL
18+
SELECT
19+
2 AS id,
20+
200 AS amount,
21+
'new' AS status,
22+
'{"key": "value2", "number": 84}'::json AS json_column,
23+
'{"key": "value2", "number": 84}'::jsonb AS jsonb_column,
24+
ARRAY[4, 5, 6] AS array_column,
25+
'00:11:22:33:44:55'::macaddr AS mac_address,
26+
'192.168.0.2'::inet AS inet_column,
27+
'192.168.0.0/24'::cidr AS cidr_column,
28+
'f'::boolean AS boolean_column,
29+
'Goodbye, world!'::text AS text_column,
30+
'2.0, 2.0'::point AS point_column,
31+
'00000001'::bit(8) AS bit_column,
32+
'<root><child>more data</child></root>'::xml AS xml_column
33+
UNION ALL
34+
SELECT
35+
3 AS id,
36+
300 AS amount,
37+
'processed' AS status,
38+
'{"key": "value3", "number": 168}'::json AS json_column,
39+
'{"key": "value3", "number": 168}'::jsonb AS jsonb_column,
40+
ARRAY[7, 8, 9] AS array_column,
41+
'22:33:44:55:66:77'::macaddr AS mac_address,
42+
'192.168.0.3'::inet AS inet_column,
43+
'192.168.0.0/24'::cidr AS cidr_column,
44+
't'::boolean AS boolean_column,
45+
'PostgreSQL is awesome!'::text AS text_column,
46+
'3.0, 3.0'::point AS point_column,
47+
'11110000'::bit(8) AS bit_column,
48+
'<root><child>even more data</child></root>'::xml AS xml_column`,
49+
measures: {
50+
count: { type: 'count' },
51+
total_amount: { type: 'sum', sql: 'amount' }
52+
},
53+
dimensions: {
54+
id: { type: 'number', sql: 'id', primaryKey: true },
55+
status: { type: 'string', sql: 'status' },
56+
json: { type: 'string', sql: 'json_column' },
57+
jsonb: { type: 'string', sql: 'jsonb_column' },
58+
array: { type: 'string', sql: 'array_column' },
59+
mac_address: { type: 'string', sql: 'mac_address' },
60+
inet_column: { type: 'string', sql: 'inet_column' },
61+
cidr_column: { type: 'string', sql: 'cidr_column' },
62+
boolean_column: { type: 'string', sql: 'boolean_column' },
63+
text_column: { type: 'string', sql: 'text_column' },
64+
point_column: { type: 'string', sql: 'point_column' },
65+
bit_column: { type: 'string', sql: 'bit_column' },
66+
xml_column: { type: 'string', sql: 'xml_column' },
67+
}
68+
});

packages/cubejs-testing/test/smoke-postgres.test.ts

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,76 @@ describe('postgres pa', () => {
106106
})).json();
107107
expect(preview.preview).toBeDefined();
108108
});
109+
110+
test('different column types', async () => {
111+
const query: Query = {
112+
dimensions: [
113+
'unusualDataTypes.array',
114+
'unusualDataTypes.bit_column',
115+
'unusualDataTypes.boolean_column',
116+
'unusualDataTypes.cidr_column',
117+
'unusualDataTypes.id',
118+
'unusualDataTypes.inet_column',
119+
'unusualDataTypes.json',
120+
'unusualDataTypes.jsonb',
121+
'unusualDataTypes.mac_address',
122+
'unusualDataTypes.point_column',
123+
'unusualDataTypes.status',
124+
'unusualDataTypes.text_column',
125+
'unusualDataTypes.xml_column'
126+
],
127+
ungrouped: true,
128+
order: {
129+
'unusualDataTypes.id': 'asc'
130+
}
131+
};
132+
const result = await client.load(query, {});
133+
expect(result.rawData()).toEqual([
134+
{
135+
'unusualDataTypes.mac_address': '11:22:33:44:55:66',
136+
'unusualDataTypes.inet_column': '192.168.0.1',
137+
'unusualDataTypes.bit_column': '11111111',
138+
'unusualDataTypes.status': 'new',
139+
'unusualDataTypes.array': [1, 2, 3],
140+
'unusualDataTypes.text_column': 'Hello, world!',
141+
'unusualDataTypes.id': 1,
142+
'unusualDataTypes.point_column': { x: 1, y: 1 },
143+
'unusualDataTypes.boolean_column': true,
144+
'unusualDataTypes.jsonb': { key: 'value1', number: 42 },
145+
'unusualDataTypes.xml_column': '<root><child>data</child></root>',
146+
'unusualDataTypes.cidr_column': '192.168.0.0/24',
147+
'unusualDataTypes.json': { key: 'value1', number: 42 }
148+
},
149+
{
150+
'unusualDataTypes.cidr_column': '192.168.0.0/24',
151+
'unusualDataTypes.array': [4, 5, 6],
152+
'unusualDataTypes.status': 'new',
153+
'unusualDataTypes.mac_address': '00:11:22:33:44:55',
154+
'unusualDataTypes.text_column': 'Goodbye, world!',
155+
'unusualDataTypes.json': { key: 'value2', number: 84 },
156+
'unusualDataTypes.id': 2,
157+
'unusualDataTypes.bit_column': '00000001',
158+
'unusualDataTypes.xml_column': '<root><child>more data</child></root>',
159+
'unusualDataTypes.point_column': { x: 2, y: 2 },
160+
'unusualDataTypes.jsonb': { key: 'value2', number: 84 },
161+
'unusualDataTypes.inet_column': '192.168.0.2',
162+
'unusualDataTypes.boolean_column': false
163+
},
164+
{
165+
'unusualDataTypes.text_column': 'PostgreSQL is awesome!',
166+
'unusualDataTypes.boolean_column': true,
167+
'unusualDataTypes.json': { key: 'value3', number: 168 },
168+
'unusualDataTypes.array': [7, 8, 9],
169+
'unusualDataTypes.point_column': { x: 3, y: 3 },
170+
'unusualDataTypes.id': 3,
171+
'unusualDataTypes.mac_address': '22:33:44:55:66:77',
172+
'unusualDataTypes.bit_column': '11110000',
173+
'unusualDataTypes.status': 'processed',
174+
'unusualDataTypes.cidr_column': '192.168.0.0/24',
175+
'unusualDataTypes.xml_column': '<root><child>even more data</child></root>',
176+
'unusualDataTypes.jsonb': { key: 'value3', number: 168 },
177+
'unusualDataTypes.inet_column': '192.168.0.3'
178+
}
179+
]);
180+
});
109181
});

0 commit comments

Comments
 (0)