@@ -29,8 +29,9 @@ const should = require('should');
29
29
const dbconfig = require ( './dbconfig.js' ) ;
30
30
const testsUtil = require ( './testsUtil.js' ) ;
31
31
32
- describe ( '208. dbObject9.js' , ( ) => {
32
+ describe ( '208. dbObject9.js' , function ( ) {
33
33
34
+ let isRunnable = false ;
34
35
let conn ;
35
36
const TYPE = 'NODB_PERSON_T' ;
36
37
const TABLE = 'NODB_TAB_EMPLOYEES' ;
@@ -41,62 +42,74 @@ describe('208. dbObject9.js', () => {
41
42
{ ID : 456 , NAME : 'Dolores' , GENDER : 'Female' }
42
43
] ;
43
44
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 ) ;
70
91
}
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 ) ;
85
92
}
93
+
86
94
} ) ; // before()
87
95
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 ) ;
92
103
93
- sql = `DROP TYPE ${ TYPE } ` ;
94
- await conn . execute ( sql ) ;
104
+ sql = `DROP TYPE ${ TYPE } ` ;
105
+ await conn . execute ( sql ) ;
95
106
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
+ }
99
111
}
112
+
100
113
} ) ; // after()
101
114
102
115
it ( '208.1 REF cursors that fetch object' , async ( ) => {
0 commit comments