From ea20a1f5c5b3c61a1619a56c4ef01c7c719118ad Mon Sep 17 00:00:00 2001 From: Radymyr Date: Thu, 5 Feb 2026 15:44:06 +0200 Subject: [PATCH 1/3] solution --- src/ifElse.test.js | 52 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/src/ifElse.test.js b/src/ifElse.test.js index 95985e0..966c0ba 100644 --- a/src/ifElse.test.js +++ b/src/ifElse.test.js @@ -1,11 +1,53 @@ -'use strict'; +"use strict"; -describe('ifElse', () => { - // const { ifElse } = require('./ifElse'); +describe(`ifElse`, () => { + const { ifElse } = require(`./ifElse`); - it('should ', () => { + it(`should be a function`, () => { + expect(ifElse).toBeInstanceOf(Function); + }); + + it(`the first function must be called`, () => { + const condition = () => true; + let count = null; + + const first = () => { + count = 1; + }; + const second = () => { + count = 2; + }; + + ifElse(condition, first, second); + expect(count).toBe(1); }); - // write tests here + it(`the second function must be called`, () => { + const condition = () => false; + let count = null; + + const first = () => { + count = 1; + }; + + const second = () => { + count = 2; + }; + + ifElse(condition, first, second); + expect(count).toBe(2); + }); + + it(`should return undefined`, () => { + const result = ifElse( + () => Math.random() > 0.5, + // eslint-disable-next-line no-console + () => console.log(1), + // eslint-disable-next-line no-console + () => console.log(2), + ); + + expect(result).toBeUndefined(); + }); }); From 33997ab64101cef10119ec5289e2da98eaa9b0f5 Mon Sep 17 00:00:00 2001 From: Radymyr Date: Thu, 5 Feb 2026 16:00:11 +0200 Subject: [PATCH 2/3] added case with function returns a 'truthy' value --- src/ifElse.test.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/ifElse.test.js b/src/ifElse.test.js index 966c0ba..24ca984 100644 --- a/src/ifElse.test.js +++ b/src/ifElse.test.js @@ -23,6 +23,22 @@ describe(`ifElse`, () => { expect(count).toBe(1); }); + it(`if function returns a 'truthy' the first function must be called`, () => { + const condition = () => Boolean(1); + let count = null; + + const first = () => { + count = 1; + }; + + const second = () => { + count = 2; + }; + + ifElse(condition, first, second); + expect(count).toBe(1); + }); + it(`the second function must be called`, () => { const condition = () => false; let count = null; From 6ab18718f09d4da226c97270556199a113f46684 Mon Sep 17 00:00:00 2001 From: Radymyr Date: Thu, 5 Feb 2026 16:04:43 +0200 Subject: [PATCH 3/3] added case with function returns a 'truthy' value --- src/ifElse.test.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ifElse.test.js b/src/ifElse.test.js index 24ca984..acf6e55 100644 --- a/src/ifElse.test.js +++ b/src/ifElse.test.js @@ -23,8 +23,9 @@ describe(`ifElse`, () => { expect(count).toBe(1); }); - it(`if function returns a 'truthy' the first function must be called`, () => { - const condition = () => Boolean(1); + it(`if function returns a 'truthy' + the second function must be called`, () => { + const condition = () => "hello"; let count = null; const first = () => { @@ -36,7 +37,7 @@ describe(`ifElse`, () => { }; ifElse(condition, first, second); - expect(count).toBe(1); + expect(count).toBe(2); }); it(`the second function must be called`, () => {