Skip to content

Sarah tdd lesson 1 green phase #53

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 9 commits into
base: sarah-tdd-lesson-1-failed-tests
Choose a base branch
from
5 changes: 3 additions & 2 deletions src/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,10 @@ describe('addAge', () => {
it('should return an array of objects with added age to each person in the ageless array', () => {

const ageless_people: ReadonlyArray<Partial<People>> = [{ name: "Aron" }, { name: "Stormi" }]
const ages: Record<string, number> = {aron: 42, stormi: 24};
const expected = [{ name: "Aron", age: 42 }, { name: "Stormi", age: 24 }];

const actual = addAge(ageless_people);
const actual = addAge(ageless_people, ages);

expect(actual).toEqual(expected);
});
Expand All @@ -61,7 +62,7 @@ describe('removeAge', () => {
expect(actual).toEqual(expected);
});

it('should return an array of objects with the age key/value pairs removed', () => {
it('should return an array of objects with the age key removed', () => {

const people_list = [{ name: "Aron", age: 42 }, { name: "Stormi", age: 24 }];
const expected = [{ name: "Aron" }, { name: "Stormi" }];
Expand Down
50 changes: 38 additions & 12 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,34 +1,60 @@
//Define class here

export interface People {
readonly name: string;
readonly age: number;
age: number;
}

export const copyPeopleArray = (people: ReadonlyArray<People>)=> {

export const copyPeopleArray = (people: ReadonlyArray<People>) => {
const copy = [...people];
return copy;
}

export const addAge = (people: ReadonlyArray<Partial<People>>) => {

export const addAge = (people: ReadonlyArray<Partial<People>>, ages: Record<string, number>) => {
const arrayWithAge = people.map(person => {
const name = person.name?.toLowerCase();
if(name != null) {
return {...person,
age: ages[name]}
}
})
return arrayWithAge;
}

export const removeAge = (people: ReadonlyArray<People>) => {

const arrayWithoutAge = people.map(person => ({
name: person.name
}))
return arrayWithoutAge;
}

export const removeAgeWithDestructure = (people: ReadonlyArray<People>) => {

const arrayWithoutAge = people.map(person => {
const {name} = person;
return {name: name}
})
return arrayWithoutAge;
}

export const removeAgeSimplifiedReturn = (people: ReadonlyArray<Partial<People>>) => {

const arrayOfNames = people.map(person => {
const {name} = person;
return {name}
})
return arrayOfNames;
}

export const changeNameAlias = (people: ReadonlyArray<People>) => {

const idArray = people.map(person => {
const {name: id} = person;
return {id, age: person.age}
})
return idArray;
}

export const arrayOfStringNames = (people: ReadonlyArray<People>) => {

const stringArray = people.map(person => {
if (person.name != null) {
return person.name;
}
})
return stringArray;
}