diff --git a/src/index.test.ts b/src/index.test.ts index 544440e..3b52354 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -11,7 +11,7 @@ describe('computedProperties', () => { const prop1 = "property1" const prop2 = "property2" - const expected = { 1: "property1", 2: "property2" }; + const expected = { "property1": "panda", "property2": "salad" }; const actual = computedProperties(prop1, prop2) @@ -20,16 +20,6 @@ describe('computedProperties', () => { }); describe('createNewCar', () => { - it('should return the object that is passed to it', () => { - - const car = { make: "vw", model: "thing", value: 345 } - const expected = { make: "vw", model: "thing", value: 345 }; - - const actual = createNewCar(car); - - expect(actual).toEqual(expected); - }); - it('should return an object with different key attributes using the object passed to it', () => { const car = { make: "vw", model: "thing", value: 345 } @@ -146,10 +136,8 @@ describe('addUserAndId', () => { } const new_user = { - "D": { "id": "D", "name": "Katlin" - } }; const expected = { @@ -203,11 +191,9 @@ describe('addUserAndIdInRegularOrder', () => { } const new_user = { - "D": { - "id": "D", - "name": "Katlin" - } - }; + "id": "D", + "name": "Katlin" + }; const expected = { items: { diff --git a/src/index.ts b/src/index.ts index f270d06..f94e5e1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,30 +16,66 @@ export interface Users { } export interface User_Repository { - readonly items: object, - readonly sort: Array + readonly items: Record, + readonly sort: string[]; } -export const computedProperties = (prop1: string, prop2: string) => { +export const computedProperties = (prop1: string, prop2: string) => { + const obj = { + [prop1]: "panda", + [prop2]: "salad" + } + return obj; } export const createNewCar = (car: Readonly) => { + const {make: Make, model: Model, value: Value} = car; + return { + Make, + Model, + Value} + } -} export const addUser = (users: Readonly, user: User) => { - + return { + ...users, + [user.id]: user + } } export const reverseSortUsers = (user_repository: Readonly) => { - + const array = user_repository.sort.map(id => { + return ( + user_repository.items[id] + ) + } + ) + return array; } -export const addUserAndId = (user_repository: Readonly, user: Users) => { - +export const addUserAndId = (user_repository: Readonly, user: User) => { + console.log(user); + return { + items: { + ...user_repository.items, + [user.id]: user + }, + sort: [user.id, ...user_repository.sort], + } } -export const addUserAndIdInRegularOrder = (user_repository: Readonly, user: Users) => { - +export const addUserAndIdInRegularOrder = (user_repository: Readonly, user: User) => { + const users = { + ...user_repository.items, + [user.id]: user + } + const sort = Object.keys(users).map(id => { + return id + }) + return { + items: users, + sort: sort + } } \ No newline at end of file