Skip to content
This repository was archived by the owner on Dec 10, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/makeStruct.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export const makeStruct = (names) => {
var names = names.split(' ');
var count = names.length;
function constructor() {
for (var i = 0; i < count; i++) {
this[names[i]] = arguments[i];
}
}
return constructor;
}
31 changes: 31 additions & 0 deletions src/makeStruct.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { makeStruct } from './makeStruct';

describe( 'makeStruct', () => {

it( 'should be function', () => {
expect( typeof makeStruct ).toBe( 'function' );
} );

it( 'should return a constructor', () => {
let mockedInput = "key1 key2 key3";

let result = makeStruct( mockedInput );
expect( typeof result ).toBe( 'function' );

} );

it( 'should create all keys', () => {
let mockedInput = "key1 key2 key3";
let mockedData1 = 1;
let mockedData2 = "lala";
let mockedData3 = ["a","a"];

let Item = makeStruct( mockedInput );
let result = new Item(mockedData1, mockedData2, mockedData3)
expect( result.key1 ).toBe( mockedData1 );
expect( result.key2 ).toBe( mockedData2 );
expect( result.key3 ).toBe( mockedData3 );
} );


} );