@@ -29,8 +29,9 @@ const should = require('should');
2929const dbconfig = require ( './dbconfig.js' ) ;
3030const 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