UNPKG

nsmockup

Version:

Test your Suitescripts before deploying to NetSuite

198 lines (170 loc) 7.72 kB
'use strict'; var should = require('should'), parallel = require('mocha.parallel'), nsmockup = require('../../'); var base = __dirname + '/../_input-files/record-data'; /** * Test Suites */ describe('<Unit Test - Netsuite Search API>', function () { this.timeout(5000); before(done => { let metadata = [ base + '/meta/customrecord_codeg.json', base + '/meta/customrecord_codeg_ids.json' ], records = { 'customrecord_codeg': base + '/data/customrecord_codeg.json', 'customrecord_codeg_ids': base + '/data/customrecord_codeg_ids.json' }; nsmockup.init({records, metadata}, done); }); parallel('SuiteScript API - nlapiSearchRecord:', () => { let recType = 'customrecord_codeg'; it('search all', done => { var columns = [ 'custrecord_type_id', 'custrecord_code_id' ].map(c => new nlobjSearchColumn(c)); let codes = nlapiSearchRecord(recType, null, null, columns); should(codes).have.length(1244); for (let i = 0; i < codes.length; i++) { let code = codes[i]; should(code).have.instanceOf(nlobjSearchResult); should(code).have.property('id'); should(code).have.property('type', 'customrecord_codeg'); //should(code).have.property('rawColumns').have.length(3); let cols = code.getAllColumns(); should(cols).have.length(2); for (let j = 0; j < cols.length; j++) { let col = cols[j]; should(col).have.instanceOf(nlobjSearchColumn); should(col).have.property('name').have.equalOneOf(['custrecord_type_id', 'custrecord_code_id']); } } return done(); }); it('search by internalid', done => { let columns = [ 'custrecord_type_id', 'custrecord_code_id' ].map(c => new nlobjSearchColumn(c)); var codes = nlapiSearchRecord(recType, 5, null, columns); should(codes).have.length(1); return done(); }); it('search one field (using nlobjSearchFilter)', done => { let columns = [ 'custrecord_type_id', 'custrecord_code_id' ].map(c => new nlobjSearchColumn(c)), filters = [ ['custrecord_type_id', null, 'anyof', 237] ].map(f => new nlobjSearchFilter(f[0], f[1], f[2], f[3])); var codes = nlapiSearchRecord(recType, null, filters, columns); should(codes).have.length(224); return done(); }); it('search one field (using array filter)', done => { let columns = [ 'custrecord_type_id', 'custrecord_code_id' ].map(c => new nlobjSearchColumn(c)), filters = [ ['custrecord_type_id', null, 'anyof', 237] ]; var codes = nlapiSearchRecord(recType, null, filters, columns); should(codes).have.length(224); return done(); }); it('search one field + join', done => { let columns = [ 'custrecord_type_id', 'custrecord_code_id' ].map(c => new nlobjSearchColumn(c)), filters = [ ['custrecord_id_title_id', 'custrecord_type_id', 'is', 'japo 266'] ].map(f => new nlobjSearchFilter(f[0], f[1], f[2], f[3])); var codes = nlapiSearchRecord(recType, null, filters, columns); should(codes).have.length(15); return done(); }); it('search one field + join and column join (raw params)', done => { let columns = [ ['custrecord_id_title_id', 'custrecord_type_id'], ['custrecord_code_id'] ].map(c => new nlobjSearchColumn(c[0], c[1])), filters = [ ['internalid', 'custrecord_type_id', 'is', '266'], ['custrecord_id_title_id', 'custrecord_type_id', 'is', 'japo 266'] ].map(f => new nlobjSearchFilter(f[0], f[1], f[2], f[3])); let codes = nlapiSearchRecord(recType, null, filters, columns); should(codes).have.length(15); let code = codes[0]; should(code).have.property('id', 11); should(code).have.property('type', 'customrecord_codeg'); let code_id = code.getValue('custrecord_id_title_id', 'custrecord_type_id'); should(code_id).have.equal('japo 266'); return done(); }); it('search one field + join and column join (using nlobjSearchColumn)', done => { let columns = [ ['custrecord_id_title_id', 'custrecord_type_id'], ['custrecord_code_id'] ].map(c => new nlobjSearchColumn(c[0], c[1])), filters = [ ['custrecord_id_title_id', 'custrecord_type_id', 'is', 'japo 266'] ].map(f => new nlobjSearchFilter(f[0], f[1], f[2], f[3])); let codes = nlapiSearchRecord(recType, null, filters, columns); should(codes).have.length(15); let code = codes[0]; should(code).have.property('id', 11); should(code).have.property('type', 'customrecord_codeg'); let code_id = code.getValue(new nlobjSearchColumn('custrecord_id_title_id', 'custrecord_type_id')); should(code_id).have.equal('japo 266'); return done(); }); it('search formula text', done => { let columns = [ ['custrecord_id_title_id', 'custrecord_type_id'], ['custrecord_code_id'], ['formulatext'] ].map(c => new nlobjSearchColumn(c[0], c[1])), filters = [ ['custrecord_id_title_id', 'custrecord_type_id', 'is', 'japo 266'] ].map(f => new nlobjSearchFilter(f[0], f[1], f[2], f[3])); columns[2].setFormula('{custrecord_code_id}||" - "||case {custrecord_type_id.custrecord_id_title_id} when "japo 266" then "legal" else "humm" end'); let codes = nlapiSearchRecord(recType, null, filters, columns); should(codes).have.length(15); let code = codes[0]; should(code).have.property('id', 11); should(code).have.property('type', 'customrecord_codeg'); let code_id = code.getValue(columns[0]); should(code_id).have.equal('japo 266'); let formula = code.getValue(columns[2]); should(formula).have.equal('12 - legal'); return done(); }); it('search missing "type"', done => { try { nlapiSearchRecord(); return done('missing type'); } catch (e) { should(e).have.property('code', 'SSS_TYPE_ARG_REQD'); return done(); } }); it('search ivalid "id"', done => { try { nlapiSearchRecord(recType, 'opa'); return done('invalid id'); } catch (e) { should(e).have.property('code', 'SSS_INVALID_INTERNAL_ID'); return done(); } }); }); after(done => { nsmockup.destroy(done); }); });