/
oracle.test.js
71 lines (67 loc) · 1.85 KB
/
oracle.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
const { basicDatabaseTest } = require('../desktop/panel/testutil');
const { withDocker, DEFAULT_TIMEOUT } = require('./docker');
const BASIC_TESTS = [
{
type: 'oracle',
query:
// Oracle does not have true/false literals
// Oracle doesn't support no-FROM. But the dual table is a dummy table.
`SELECT 1 AS "1", 2.2 AS "2", 1 AS "true", 'string' AS "string", TO_DATE('2021-01-01','YYYY-MM-DD') AS "date" FROM dual`,
},
];
const vendorOverride = {
oracle: {
database: 'XEPDB1',
},
};
describe('basic oracle tests', () => {
for (const t of BASIC_TESTS) {
test(
t.query,
async () => {
await withDocker(
{
image: 'docker.io/gvenzl/oracle-xe:latest',
port: '1521',
env: {
ORACLE_RANDOM_PASSWORD: 'y',
APP_USER: 'test',
APP_USER_PASSWORD: 'test',
},
// TODO: find a better way to wait for oracle to come up
wait: () => new Promise((r) => setTimeout(r, 60_000)),
},
() => basicDatabaseTest(t, vendorOverride)
);
},
DEFAULT_TIMEOUT
);
}
test(
'alternative port regression test',
async () => {
await withDocker(
{
image: 'docker.io/gvenzl/oracle-xe:latest',
port: '1520:1521',
env: {
ORACLE_RANDOM_PASSWORD: 'y',
APP_USER: 'test',
APP_USER_PASSWORD: 'test',
},
// TODO: find a better way to wait for oracle to come up
wait: () => new Promise((r) => setTimeout(r, 60_000)),
},
() =>
basicDatabaseTest(BASIC_TESTS[0], {
...vendorOverride,
oracle: {
...vendorOverride.oracle,
address: 'localhost:1520',
},
})
);
},
DEFAULT_TIMEOUT
);
});