Skip to content

Commit

Permalink
JavaScript-week3-assignment done
Browse files Browse the repository at this point in the history
  • Loading branch information
rektozarius committed Dec 9, 2024
1 parent 32c40e3 commit 494713f
Show file tree
Hide file tree
Showing 11 changed files with 106 additions and 18 deletions.
13 changes: 13 additions & 0 deletions .test-summary/TEST_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## Test Summary

**Mentors**: For more information on how to review homework assignments, please refer to the [Review Guide](https://github.com/HackYourFuture/mentors/blob/main/assignment-support/review-guide.md).

### 1-JavaScript - Week3

| Exercise | Passed | Failed | ESLint |
|----------------------------|--------|--------|--------|
| ex1-doubleEvenNumbers.test | 1 | - ||
| ex2-mondaysWorth.test | 2 | - ||
| ex3-lemonAllergy.test | 3 | - ||
| ex4-observable | 3 | - ||
| ex5-wallet | 5 | - ||
8 changes: 1 addition & 7 deletions 1-JavaScript/Week3/assignment/ex1-doubleEvenNumbers.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,7 @@ Let's rewrite it (or _refactor_ it, as experienced developers would call it):
// ! Function to be tested
function doubleEvenNumbers(numbers) {
// TODO rewrite the function body using `map` and `filter`.
const newNumbers = [];
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 === 0) {
newNumbers.push(numbers[i] * 2);
}
}
return newNumbers;
return numbers.filter((number) => (number % 2 === 0)).map((number) => (number * 2));
}

// ! Unit test (using Jest)
Expand Down
4 changes: 3 additions & 1 deletion 1-JavaScript/Week3/assignment/ex2-mondaysWorth.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@ const mondayTasks = [

const hourlyRate = 25;

function computeEarnings(/* TODO parameter(s) go here */) {
function computeEarnings(tasks, hourlyRate) {
// TODO complete this function
const totalEarnings = tasks.map((task) => ((task.duration / 60) * hourlyRate)).reduce((earnings, earning) => earnings + earning, 0).toFixed(2);
return `€${totalEarnings}`
}

// ! Unit tests (using Jest)
Expand Down
11 changes: 7 additions & 4 deletions 1-JavaScript/Week3/assignment/ex3-lemonAllergy.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,29 @@ const fruitBasket = [
];

// ! Function under test
function sanitizeFruitBasket(/* TODO parameter(s) go here */) {
function sanitizeFruitBasket(fruitBasket, doNotEat) {
// TODO complete this function
const pureBasket = [...fruitBasket];
return pureBasket.filter((fruit) => (fruit !== doNotEat));
}

// ! Unit tests (using Jest)
describe('js-wk3-ex3-lemonAllergy', () => {
test('sanitizeFruitBasket should take two parameters', () => {
// TODO replace next line with your code
expect(false).toBe(true);
expect(sanitizeFruitBasket.length).toBe(2);
});

test('sanitizeFruitBasket should not modify the original `fruitBasket` array', () => {
// Save the original contents of the fruit basket
const originalFruitBasketContents = [...fruitBasket];
// TODO replace next line with your code
expect(false).toBe(true);
sanitizeFruitBasket(fruitBasket, "lemon");
expect(fruitBasket).toEqual(originalFruitBasketContents);
});

test('sanitizeFruitBasket should return a new array that does not include the unwanted `lemon`', () => {
// TODO replace next line with your code
expect(false).toBe(true);
expect(sanitizeFruitBasket(fruitBasket, "lemon").includes("lemon")).toBe(false);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ export function createObservable() {
return {
subscribe(subscriber) {
// TODO complete this function
subscribers.push(subscriber);
},
notify(message) {
// TODO complete this function
subscribers.forEach((element) => (element(message)))
},
};
}
12 changes: 6 additions & 6 deletions 1-JavaScript/Week3/assignment/ex5-wallet/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ function createWallet(name, cash = 0) {
function transferInto(wallet, amount) {
console.log(
`Transferring ${eurosFormatter.format(amount)} from ${name} to ${
wallet.name
wallet.getName()
}`
);
const withdrawnAmount = withdraw(amount);
Expand Down Expand Up @@ -75,7 +75,7 @@ const quiz = {
b: 'cash, name',
c: 'amount, this, wallet'
},
answer: undefined,
answer: "b",
},
q2: {
question: 'What is in the Call Stack, from top to bottom?',
Expand All @@ -84,7 +84,7 @@ const quiz = {
b: 'anonymous, transferInto',
c: 'transferInto, anonymous'
},
answer: undefined,
answer: "c",
},
q3: {
question: 'What tooltip appears when hovering over the third debug button?',
Expand All @@ -93,7 +93,7 @@ const quiz = {
b: 'Step out of current function',
c: 'Step'
},
answer: undefined,
answer: "a",
},
q4: {
question: 'What is displayed in the console?',
Expand All @@ -102,7 +102,7 @@ const quiz = {
b: 'Transferring € 50,00 from Jack to undefined',
c: 'Transferring € 50,00 from Jack to Jane'
},
answer: undefined,
answer: "a",
},
q5: {
question: 'The owner of the wallet with insufficient funds is:',
Expand All @@ -111,6 +111,6 @@ const quiz = {
b: 'Joe',
c: 'Jane'
},
answer: undefined,
answer: "c",
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
*** Unit Test Error Report ***

PASS 1-JavaScript/Week3/assignment/ex1-doubleEvenNumbers.test.js
js-wk3-ex1-doubleEvenNumbers
✅ doubleEvenNumbers should take the even numbers and double them (2 ms)

Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.379 s, estimated 1 s
Ran all test suites matching /C:\\Users\\rektozarius\\samuel\\main\\Assignments-cohort51\\1-JavaScript\\Week3\\assignment\\ex1-doubleEvenNumbers.test.js/i.
No linting errors detected.
No spelling errors detected.
14 changes: 14 additions & 0 deletions 1-JavaScript/Week3/test-reports/ex2-mondaysWorth.test.report.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
*** Unit Test Error Report ***

PASS 1-JavaScript/Week3/assignment/ex2-mondaysWorth.test.js
js-wk3-mondaysWorth
✅ computeEarnings should take two parameters (1 ms)
✅ computeEarnings should compute the earnings as a formatted Euro amount

Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 0.389 s, estimated 1 s
Ran all test suites matching /C:\\Users\\rektozarius\\samuel\\main\\Assignments-cohort51\\1-JavaScript\\Week3\\assignment\\ex2-mondaysWorth.test.js/i.
No linting errors detected.
No spelling errors detected.
15 changes: 15 additions & 0 deletions 1-JavaScript/Week3/test-reports/ex3-lemonAllergy.test.report.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
*** Unit Test Error Report ***

PASS 1-JavaScript/Week3/assignment/ex3-lemonAllergy.test.js
js-wk3-ex3-lemonAllergy
✅ sanitizeFruitBasket should take two parameters (1 ms)
✅ sanitizeFruitBasket should not modify the original `fruitBasket` array (1 ms)
✅ sanitizeFruitBasket should return a new array that does not include the unwanted `lemon`

Test Suites: 1 passed, 1 total
Tests: 3 passed, 3 total
Snapshots: 0 total
Time: 0.39 s, estimated 1 s
Ran all test suites matching /C:\\Users\\rektozarius\\samuel\\main\\Assignments-cohort51\\1-JavaScript\\Week3\\assignment\\ex3-lemonAllergy.test.js/i.
No linting errors detected.
No spelling errors detected.
15 changes: 15 additions & 0 deletions 1-JavaScript/Week3/test-reports/ex4-observable.report.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
*** Unit Test Error Report ***

PASS 1-JavaScript/Week3/assignment/ex4-observable/ex4-observable.test.js
js-wk3-ex4-observable
✅ createObservable should exist and be a function (1 ms)
✅ createObservable should return an object with `subscribe` and a `notify` function properties
✅ observable should notify all subscribers of any notification (1 ms)

Test Suites: 1 passed, 1 total
Tests: 3 passed, 3 total
Snapshots: 0 total
Time: 0.409 s
Ran all test suites matching /C:\\Users\\rektozarius\\samuel\\main\\Assignments-cohort51\\1-JavaScript\\Week3\\assignment\\ex4-observable\\ex4-observable.test.js/i.
No linting errors detected.
No spelling errors detected.
17 changes: 17 additions & 0 deletions 1-JavaScript/Week3/test-reports/ex5-wallet.report.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
*** Unit Test Error Report ***

PASS .dist/1-JavaScript/Week3/unit-tests/ex5-wallet.test.js
js-wk3-ex5-wallet
✅ q1: At line 24, which variables are in the scope marked Closure? (1 ms)
✅ q2: What is in the Call Stack, from top to bottom?
✅ q3: What tooltip appears when hovering over the third debug button?
✅ q4: What is displayed in the console?
✅ q5: The owner of the wallet with insufficient funds is?

Test Suites: 1 passed, 1 total
Tests: 5 passed, 5 total
Snapshots: 0 total
Time: 0.38 s, estimated 1 s
Ran all test suites matching /C:\\Users\\rektozarius\\samuel\\main\\Assignments-cohort51\\.dist\\1-JavaScript\\Week3\\unit-tests\\ex5-wallet.test.js/i.
No linting errors detected.
No spelling errors detected.

0 comments on commit 494713f

Please sign in to comment.