diff --git a/framework/default/ortoo-core/default/lwc/objectHelper/__tests__/objectHelper.test.js b/framework/default/ortoo-core/default/lwc/objectHelper/__tests__/objectHelper.test.js new file mode 100644 index 00000000000..a2276f16e04 --- /dev/null +++ b/framework/default/ortoo-core/default/lwc/objectHelper/__tests__/objectHelper.test.js @@ -0,0 +1,20 @@ +import ObjectHelper from 'c/objectHelper'; + +describe( 'generateRowId', () => { + + it( 'returns an alpha numeric string that is 10 characters long', () => { + + const got = ObjectHelper.generateRowId(); + expect( got ).toHaveLength( 10 ); + }); + + it( 'does not return the same string when called multiple times', () => { + + let previousIds = []; + for ( let i=0; i<100; i++ ) { + const got = ObjectHelper.generateRowId(); + expect( previousIds ).not.toContain( got ); + previousIds.push( got ); + } + }); +}); \ No newline at end of file diff --git a/framework/default/ortoo-core/default/lwc/objectHelper/objectHelper.js b/framework/default/ortoo-core/default/lwc/objectHelper/objectHelper.js new file mode 100644 index 00000000000..1ce9b9cc833 --- /dev/null +++ b/framework/default/ortoo-core/default/lwc/objectHelper/objectHelper.js @@ -0,0 +1,16 @@ +const generateRowId = function() { + const length = 10; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + const charactersLength = characters.length; + + let result = ''; + for ( let i = 0; i < length; i++ ) { + result += characters.charAt( Math.floor ( Math.random() * charactersLength ) ); + } + + return result; +} + +export default { + generateRowId : generateRowId +}; \ No newline at end of file diff --git a/framework/default/ortoo-core/default/lwc/objectHelper/objectHelper.js-meta.xml b/framework/default/ortoo-core/default/lwc/objectHelper/objectHelper.js-meta.xml new file mode 100644 index 00000000000..3f282860eba --- /dev/null +++ b/framework/default/ortoo-core/default/lwc/objectHelper/objectHelper.js-meta.xml @@ -0,0 +1,5 @@ + + + 54.0 + false + \ No newline at end of file