UNPKG

nsmockup

Version:

Test your Suitescripts before deploying to NetSuite

123 lines (100 loc) 4.02 kB
'use strict'; var should = require('should'), nsmockup = require('../../'); var base = __dirname + '/../_input-files/record-data'; /** * Test Suites */ describe('<Unit Test - Netsuite Record 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); }); describe('SuiteScript API - nlapiSubmitRecord:', () => { let recType = 'customrecord_codeg'; it('submit new record', done => { let initValues = { custrecord_type_id: '111', custrecord_code_id: '194' }, o = nlapiCreateRecord(recType, initValues); should(o).have.instanceOf(nlobjRecord); should(o.getAllFields()).have.length(2); Object.keys(initValues).forEach(f => { should(o.getFieldValue(f)).be.equal(initValues[f]); }); let sizeBefore = $db(recType).size(), id = nlapiSubmitRecord(o); should(id).be.equal(sizeBefore + 1); let columns = [ 'custrecord_type_id', 'custrecord_code_id' ].map(c => new nlobjSearchColumn(c)), result = nlapiSearchRecord(recType, id, null, columns); should(result).have.length(1); Object.keys(initValues).forEach(f => { should(o.getFieldValue(f)).be.equal(result[0].getValue(f)); }); return done(); }); it('submit update record', done => { let initValues = { custrecord_type_id: '111', custrecord_code_id: '194' }, o = nlapiCreateRecord(recType, initValues); should(o).have.instanceOf(nlobjRecord); should(o.getAllFields()).have.length(2); Object.keys(initValues).forEach(f => { should(o.getFieldValue(f)).be.equal(initValues[f]); }); o.id = 1; let sizeBefore = $db(recType).size(), id = nlapiSubmitRecord(o); should($db(recType).size()).be.equal(sizeBefore); let columns = [ 'custrecord_type_id', 'custrecord_code_id' ].map(c => new nlobjSearchColumn(c)), result = nlapiSearchRecord(recType, id, null, columns); should(result).have.length(1); should(result[0].getId(), o.id); Object.keys(initValues).forEach(f => { should(o.getFieldValue(f)).be.equal(result[0].getValue(f)); }); return done(); }); it('submit missing record', done => { try { let o = nlapiSubmitRecord(); should(o).have.instanceOf(nlobjRecord); return done('missing record type: ' + o.getRecordType()); } catch (e) { should(e).have.property('code', 'SSS_RECORD_OBJ_REQD'); return done(); } }); it('submit missing record type', done => { try { let invalidRecType = recType + 'japoooo', o = nlapiSubmitRecord(new nlobjRecord(invalidRecType)); should(o).have.instanceOf(nlobjRecord); return done('missing record type: ' + invalidRecType); } catch (e) { should(e).have.property('code', 'SSS_INVALID_RECORD_TYPE'); return done(); } }); }); after(done => { nsmockup.destroy(done); }); });