From e5a1f2539fe5408788129974176b25fb8c21cdae Mon Sep 17 00:00:00 2001 From: Mark Tyers Date: Fri, 30 Nov 2018 09:35:43 +0000 Subject: [PATCH] added simple spies example --- .../05_advanced_testing/03_spies_basic/app.js | 9 +++++++++ .../03_spies_basic/app.test.js | 19 ++++++++++++++++++ .../03_spies_basic/math.js | 7 +++++++ .../03_spies_basic/package.json | 20 +++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 exercises/05_advanced_testing/03_spies_basic/app.js create mode 100644 exercises/05_advanced_testing/03_spies_basic/app.test.js create mode 100644 exercises/05_advanced_testing/03_spies_basic/math.js create mode 100644 exercises/05_advanced_testing/03_spies_basic/package.json diff --git a/exercises/05_advanced_testing/03_spies_basic/app.js b/exercises/05_advanced_testing/03_spies_basic/app.js new file mode 100644 index 0000000..a410b87 --- /dev/null +++ b/exercises/05_advanced_testing/03_spies_basic/app.js @@ -0,0 +1,9 @@ + +'use strict' + +const math = require('./math.js') + +module.exports.doAdd = (a, b) => math.add(a, b) +module.exports.doSubtract = (a, b) => math.subtract(a, b) +module.exports.doMultiply = (a, b) => math.multiply(a, b) +module.exports.doDivide = (a, b) => math.divide(a, b) diff --git a/exercises/05_advanced_testing/03_spies_basic/app.test.js b/exercises/05_advanced_testing/03_spies_basic/app.test.js new file mode 100644 index 0000000..e78f2f3 --- /dev/null +++ b/exercises/05_advanced_testing/03_spies_basic/app.test.js @@ -0,0 +1,19 @@ + +'use strict' + +const app = require('./app') +const math = require('./math') + +test('calls math.add', () => { + const addMock = jest.spyOn(math, 'add') + + // override the implementation + addMock.mockImplementation(() => 'mock') + expect(app.doAdd(1, 2)).toEqual('mock') + expect(addMock).toHaveBeenCalledWith(1, 2) + + // restore the original implementation + addMock.mockRestore() + expect(app.doAdd(1, 2)).toEqual(3) + console.log(addMock.mock.calls) +}) diff --git a/exercises/05_advanced_testing/03_spies_basic/math.js b/exercises/05_advanced_testing/03_spies_basic/math.js new file mode 100644 index 0000000..57dde10 --- /dev/null +++ b/exercises/05_advanced_testing/03_spies_basic/math.js @@ -0,0 +1,7 @@ + +'use strict' + +module.exports.add = (a, b) => a + b +module.exports.subtract = (a, b) => b - a +module.exports.multiply = (a, b) => a * b +module.exports.divide = (a, b) => b / a diff --git a/exercises/05_advanced_testing/03_spies_basic/package.json b/exercises/05_advanced_testing/03_spies_basic/package.json new file mode 100644 index 0000000..7c9a5e4 --- /dev/null +++ b/exercises/05_advanced_testing/03_spies_basic/package.json @@ -0,0 +1,20 @@ +{ + "name": "03_spies", + "version": "1.0.0", + "description": "", + "main": "app.js", + "scripts": { + "test": "./node_modules/.bin/jest", + "watch": "./node_modules/.bin/jest --noStackTrace --watchAll" + }, + "author": "", + "license": "ISC", + "jest": { + "testEnvironment": "node", + "verbose": true, + "collectCoverage": true + }, + "devDependencies": { + "jest": "^23.6.0" + } +}