diff --git a/Tests/Utils/record.test.js b/Tests/Utils/record.test.js index 7d54a8a..2a491f3 100644 --- a/Tests/Utils/record.test.js +++ b/Tests/Utils/record.test.js @@ -3,21 +3,21 @@ * */ -const FileUnderTest = require('../../Utils/record'); +const Record = require('../../Utils/record'); describe('testing record', () => { it('should return a function ', () => { - expect(FileUnderTest).toEqual(expect.any(Function)); + expect(Record).toEqual(expect.any(Function)); }); }); describe('setFieldValues', () => { it('should check whether method exists', () => { - const result = new FileUnderTest(''); + const result = new Record(''); expect(Object.prototype.hasOwnProperty.call(result, 'setFieldValues')).toBeTruthy(); }); it('should assign values to fieldName', () => { - const result = new FileUnderTest(); + const result = new Record(); const values = ['123456', '654321']; result.setFieldValues('selectField', values); expect(result.getFieldValue('selectField')).toEqual(['123456', '654321']); @@ -26,9 +26,38 @@ describe('setFieldValues', () => { describe('getFieldValues', () => { it('should return values for id specified', () => { - const result = new FileUnderTest(); + const result = new Record(); result.setFieldValues('selectField', ['123', '123']); const myValues = result.getFieldValues('selectField'); expect(myValues).toEqual(['123', '123']); }); }); + +describe('getRecordType', () => { + it('should return record type', () => { + const type = 'salesorder'; + const result = new Record(type); + const recordType = result.getRecordType(); + expect(recordType).toEqual(type); + }); +}); + +describe('getLineItemCount', () => { + it('should return number representing the length of a given sublist', () => { + const sublistId = 'item'; + const itemsSublistData = [{ + item_display: '101.173.00', + quantity: '3', + }, + { + item_display: '101.174.00', + quantity: '1', + }]; + const salesOrder = new Record('salesorder', { + item: itemsSublistData, + }); + const mockedItemsLength = itemsSublistData.length; + const itemSublistLength = salesOrder.getLineItemCount(sublistId); + expect(itemSublistLength).toEqual(mockedItemsLength); + }); +}); diff --git a/Utils/record.js b/Utils/record.js index 837970f..c8e6f55 100644 --- a/Utils/record.js +++ b/Utils/record.js @@ -5,21 +5,21 @@ const sublistObj = require('./sublistObjectMembers.jsx'); * * @classDescription Record object * @constructor - * @param {string} name + * @param {string} type * @param {object} defaultValues * @returns {nlobjRecord} */ -function NsRecord(name, defaultValues = {}) { +function NsRecord(type, defaultValues = {}) { const id = defaultValues.id || Math.ceil(Math.random() * 100); const activeLine = {}; this.values = defaultValues; this.values.item = this.values.item || []; this.values.links = this.values.links || []; - this.type = 'nlobjRecord'; + this.type = type || 'nlobjRecord'; return { // 1.0 methods getId: () => id, - getName: () => name, + getRecordType: () => this.type, // same method for both 1.0 and 2.0 // 2.0 methods // eslint-disable-next-line no-unused-vars @@ -27,8 +27,8 @@ function NsRecord(name, defaultValues = {}) { commit: () => {}, commitLine: obj => activeLine[obj.sublistId], commitLineItem: sublist => activeLine[sublist], - createCurrentLineItemSubrecord: (sublistId, type) => nlapiCreateRecord(type, { sublistId }), - + createCurrentLineItemSubrecord: + (sublistId, subRecordFieldId) => nlapiCreateRecord(subRecordFieldId, { sublistId }), getAll: () => this.values, // Helper getCurrentLineItemValue: (sublist, field) => this.values[sublist][activeLine[sublist]][field], getCurrentSublistValue: (obj) => { diff --git a/package.json b/package.json index afa92c7..2c93308 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ns-suitescript-mocks", - "version": "0.2.5", + "version": "0.2.6", "description": "Collection of mocks that can be used to improve unit-tests for SuiteScript 2.0.", "main": "index.js", "author": "Damian Krolikowski",