Skip to content

Commit ba07e3b

Browse files
committed
Tweak tests for 11c client libraries
1 parent 9497d12 commit ba07e3b

File tree

6 files changed

+256
-186
lines changed

6 files changed

+256
-186
lines changed

test/connProps.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@
2828
const oracledb = require('oracledb');
2929
const should = require('should');
3030
const dbconfig = require('./dbconfig.js');
31+
const testsUtil = require('./testsUtil.js');
3132

3233
describe('193. connProps.js', function() {
3334

3435
let isRunnable = false;
3536

3637
before(async function() {
37-
if (process.env.NODE_ORACLEDB_DBA_PRIVILEGE) {
38+
let preps = await testsUtil.checkPrerequisites();
39+
if (preps && process.env.NODE_ORACLEDB_DBA_PRIVILEGE) {
3840
isRunnable = true;
3941
}
4042

test/currentSchema.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,18 @@ const should = require('should');
2929
const dbconfig = require('./dbconfig.js');
3030
const testsUtil = require('./testsUtil.js');
3131

32-
describe('191. currentSchema.js', () => {
32+
describe('191. currentSchema.js', function() {
33+
34+
let isRunnable = false;
35+
36+
before(async function() {
37+
isRunnable = await testsUtil.checkPrerequisites();
38+
39+
if (!isRunnable) {
40+
this.skip();
41+
return;
42+
}
43+
});
3344

3445
it('191.1 the value will be empty until it has been explicitly set', async () => {
3546

test/dbObject12.js

Lines changed: 48 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -27,51 +27,65 @@
2727
const oracledb = require('oracledb');
2828
const should = require('should');
2929
const dbconfig = require('./dbconfig.js');
30+
const testsUtil = require('./testsUtil.js');
3031

31-
describe('211. dbObject12.js', () => {
32+
describe('211. dbObject12.js', function() {
3233

34+
let isRunnable = false;
3335
let conn;
3436

3537
const PKG = 'NODB_REC_PKG';
3638
const TYPE = 'NODB_REC_TYP';
3739

38-
before(async () => {
39-
try {
40-
conn = await oracledb.getConnection(dbconfig);
41-
42-
let plsql =`
43-
CREATE OR REPLACE PACKAGE ${PKG} AS
44-
TYPE ${TYPE} IS RECORD (name VARCHAR2(40), pos NUMBER);
45-
PROCEDURE myproc (p_in IN ${TYPE}, p_out OUT ${TYPE});
46-
END ${PKG};
47-
`;
48-
await conn.execute(plsql);
49-
50-
plsql =`
51-
CREATE OR REPLACE PACKAGE BODY ${PKG} AS
52-
PROCEDURE myproc (p_in IN ${TYPE}, p_out OUT ${TYPE}) AS
53-
BEGIN
54-
p_out := p_in;
55-
p_out.pos := p_out.pos * 2;
56-
END;
57-
END ${PKG};
58-
`;
59-
await conn.execute(plsql);
60-
61-
} catch(err) {
62-
should.not.exist(err);
40+
before(async function() {
41+
isRunnable = await testsUtil.checkPrerequisites();
42+
if(!isRunnable) {
43+
this.skip();
44+
return;
45+
} else {
46+
try {
47+
conn = await oracledb.getConnection(dbconfig);
48+
49+
let plsql =`
50+
CREATE OR REPLACE PACKAGE ${PKG} AS
51+
TYPE ${TYPE} IS RECORD (name VARCHAR2(40), pos NUMBER);
52+
PROCEDURE myproc (p_in IN ${TYPE}, p_out OUT ${TYPE});
53+
END ${PKG};
54+
`;
55+
await conn.execute(plsql);
56+
57+
plsql =`
58+
CREATE OR REPLACE PACKAGE BODY ${PKG} AS
59+
PROCEDURE myproc (p_in IN ${TYPE}, p_out OUT ${TYPE}) AS
60+
BEGIN
61+
p_out := p_in;
62+
p_out.pos := p_out.pos * 2;
63+
END;
64+
END ${PKG};
65+
`;
66+
await conn.execute(plsql);
67+
68+
} catch(err) {
69+
should.not.exist(err);
70+
}
6371
}
64-
}); // before()
6572

66-
after(async () => {
67-
try {
68-
let sql = `DROP PACKAGE ${PKG}`;
69-
await conn.execute(sql);
73+
}); // before()
7074

71-
await conn.close();
72-
} catch(err) {
73-
should.not.exist(err);
75+
after(async function() {
76+
if(!isRunnable) {
77+
return;
78+
} else {
79+
try {
80+
let sql = `DROP PACKAGE ${PKG}`;
81+
await conn.execute(sql);
82+
83+
await conn.close();
84+
} catch(err) {
85+
should.not.exist(err);
86+
}
7487
}
88+
7589
}); // after()
7690

7791
it('211.1 examples/plsqlrecord.js', async () => {

test/dbObject13.js

Lines changed: 55 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -27,56 +27,71 @@
2727
const oracledb = require('oracledb');
2828
const should = require('should');
2929
const dbconfig = require('./dbconfig.js');
30+
const testsUtil = require('./testsUtil.js');
3031

31-
describe('212. dbObject13.js', () => {
32+
describe('212. dbObject13.js', function() {
33+
34+
let isRunnable = false;
3235

3336
let conn;
3437
const PKG = 'NODB_NETBALL_PKG';
3538

36-
before(async () => {
37-
try {
38-
conn = await oracledb.getConnection(dbconfig);
39-
40-
let plsql =`
41-
CREATE OR REPLACE PACKAGE ${PKG} AS
42-
TYPE playerType IS RECORD (name VARCHAR2(40), position VARCHAR2(20), shirtnumber NUMBER);
43-
TYPE teamType IS VARRAY(10) OF playerType;
44-
PROCEDURE assignShirtNumbers (t_in IN teamType, t_out OUT teamType);
45-
END ${PKG};
46-
`;
47-
await conn.execute(plsql);
48-
49-
plsql =`
50-
CREATE OR REPLACE PACKAGE BODY ${PKG} AS
51-
PROCEDURE assignShirtNumbers (t_in IN teamType, t_out OUT teamType) AS
52-
p teamType := teamType();
53-
BEGIN
54-
FOR i in 1..t_in.COUNT LOOP
55-
p.EXTEND;
56-
p(i) := t_in(i);
57-
p(i).SHIRTNUMBER := i;
58-
END LOOP;
59-
t_out := p;
60-
END;
61-
62-
END ${PKG};
63-
`;
64-
await conn.execute(plsql);
65-
66-
} catch(err) {
67-
should.not.exist(err);
39+
before(async function() {
40+
isRunnable = await testsUtil.checkPrerequisites();
41+
if(!isRunnable) {
42+
this.skip();
43+
return;
44+
} else {
45+
try {
46+
conn = await oracledb.getConnection(dbconfig);
47+
48+
let plsql =`
49+
CREATE OR REPLACE PACKAGE ${PKG} AS
50+
TYPE playerType IS RECORD (name VARCHAR2(40), position VARCHAR2(20), shirtnumber NUMBER);
51+
TYPE teamType IS VARRAY(10) OF playerType;
52+
PROCEDURE assignShirtNumbers (t_in IN teamType, t_out OUT teamType);
53+
END ${PKG};
54+
`;
55+
await conn.execute(plsql);
56+
57+
plsql =`
58+
CREATE OR REPLACE PACKAGE BODY ${PKG} AS
59+
PROCEDURE assignShirtNumbers (t_in IN teamType, t_out OUT teamType) AS
60+
p teamType := teamType();
61+
BEGIN
62+
FOR i in 1..t_in.COUNT LOOP
63+
p.EXTEND;
64+
p(i) := t_in(i);
65+
p(i).SHIRTNUMBER := i;
66+
END LOOP;
67+
t_out := p;
68+
END;
69+
70+
END ${PKG};
71+
`;
72+
await conn.execute(plsql);
73+
74+
} catch(err) {
75+
should.not.exist(err);
76+
}
6877
}
78+
6979
}); // before()
7080

71-
after(async () => {
72-
try {
73-
let sql = `DROP PACKAGE ${PKG}`;
74-
await conn.execute(sql);
81+
after(async function() {
82+
if(!isRunnable) {
83+
return;
84+
} else {
85+
try {
86+
let sql = `DROP PACKAGE ${PKG}`;
87+
await conn.execute(sql);
7588

76-
await conn.close();
77-
} catch(err) {
78-
should.not.exist(err);
89+
await conn.close();
90+
} catch(err) {
91+
should.not.exist(err);
92+
}
7993
}
94+
8095
}); // after()
8196

8297
it('212.1 examples/plsqlvarrayrecord.js', async () => {

test/dbObject9.js

Lines changed: 63 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ const should = require('should');
2929
const dbconfig = require('./dbconfig.js');
3030
const testsUtil = require('./testsUtil.js');
3131

32-
describe('208. dbObject9.js', () => {
32+
describe('208. dbObject9.js', function() {
3333

34+
let isRunnable = false;
3435
let conn;
3536
const TYPE = 'NODB_PERSON_T';
3637
const TABLE = 'NODB_TAB_EMPLOYEES';
@@ -41,62 +42,74 @@ describe('208. dbObject9.js', () => {
4142
{ ID: 456, NAME: 'Dolores', GENDER: 'Female' }
4243
];
4344

44-
before(async() => {
45-
try {
46-
conn = await oracledb.getConnection(dbconfig);
47-
48-
let sql =
49-
`CREATE OR REPLACE TYPE ${TYPE} AS OBJECT (
50-
id NUMBER,
51-
name VARCHAR2(30),
52-
gender VARCHAR2(20)
53-
);`;
54-
await conn.execute(sql);
55-
56-
sql =
57-
`CREATE TABLE ${TABLE} (
58-
empnum NUMBER,
59-
person ${TYPE}
60-
)`;
61-
let plsql = testsUtil.sqlCreateTable(TABLE, sql);
62-
await conn.execute(plsql);
63-
64-
const PersonType = await conn.getDbObjectClass(TYPE);
65-
let bindArr = [];
66-
for (let i = 0, num, p; i < PEOPLE.length; i++) {
67-
num = i + 1;
68-
p = new PersonType(PEOPLE[i]);
69-
bindArr[i] = [num, p];
45+
before(async function() {
46+
isRunnable = await testsUtil.checkPrerequisites();
47+
if(!isRunnable) {
48+
this.skip();
49+
return;
50+
} else {
51+
try {
52+
conn = await oracledb.getConnection(dbconfig);
53+
54+
let sql =
55+
`CREATE OR REPLACE TYPE ${TYPE} AS OBJECT (
56+
id NUMBER,
57+
name VARCHAR2(30),
58+
gender VARCHAR2(20)
59+
);`;
60+
await conn.execute(sql);
61+
62+
sql =
63+
`CREATE TABLE ${TABLE} (
64+
empnum NUMBER,
65+
person ${TYPE}
66+
)`;
67+
let plsql = testsUtil.sqlCreateTable(TABLE, sql);
68+
await conn.execute(plsql);
69+
70+
const PersonType = await conn.getDbObjectClass(TYPE);
71+
let bindArr = [];
72+
for (let i = 0, num, p; i < PEOPLE.length; i++) {
73+
num = i + 1;
74+
p = new PersonType(PEOPLE[i]);
75+
bindArr[i] = [num, p];
76+
}
77+
let opts = {
78+
autoCommit: true,
79+
bindDefs: [ { type: oracledb.NUMBER }, { type: PersonType } ]
80+
};
81+
let result = await conn.executeMany(
82+
`INSERT INTO ${TABLE} VALUES (:1, :2)`,
83+
bindArr,
84+
opts
85+
);
86+
87+
should.strictEqual(result.rowsAffected, PEOPLE.length);
88+
89+
} catch (err) {
90+
should.not.exist(err);
7091
}
71-
let opts = {
72-
autoCommit: true,
73-
bindDefs: [ { type: oracledb.NUMBER }, { type: PersonType } ]
74-
};
75-
let result = await conn.executeMany(
76-
`INSERT INTO ${TABLE} VALUES (:1, :2)`,
77-
bindArr,
78-
opts
79-
);
80-
81-
should.strictEqual(result.rowsAffected, PEOPLE.length);
82-
83-
} catch (err) {
84-
should.not.exist(err);
8592
}
93+
8694
}); // before()
8795

88-
after(async() => {
89-
try {
90-
let sql = `DROP TABLE ${TABLE} PURGE`;
91-
await conn.execute(sql);
96+
after(async function() {
97+
if(!isRunnable) {
98+
return;
99+
} else {
100+
try {
101+
let sql = `DROP TABLE ${TABLE} PURGE`;
102+
await conn.execute(sql);
92103

93-
sql = `DROP TYPE ${TYPE}`;
94-
await conn.execute(sql);
104+
sql = `DROP TYPE ${TYPE}`;
105+
await conn.execute(sql);
95106

96-
await conn.close();
97-
} catch (err) {
98-
should.not.exist(err);
107+
await conn.close();
108+
} catch (err) {
109+
should.not.exist(err);
110+
}
99111
}
112+
100113
}); // after()
101114

102115
it('208.1 REF cursors that fetch object', async () => {

0 commit comments

Comments
 (0)