From e6fcbdb1652f691bab9b07f4d7897ab712119d5c Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Mon, 23 Mar 2020 19:31:02 +0100 Subject: [PATCH] Added score tests --- screens/Tetris/ScoreManager.js | 4 ++ screens/Tetris/__tests__/ScoreManager.test.js | 71 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 screens/Tetris/__tests__/ScoreManager.test.js diff --git a/screens/Tetris/ScoreManager.js b/screens/Tetris/ScoreManager.js index 353818b..263d27b 100644 --- a/screens/Tetris/ScoreManager.js +++ b/screens/Tetris/ScoreManager.js @@ -22,6 +22,10 @@ export default class ScoreManager { return this.#level; } + getLevelProgression(): number { + return this.#levelProgression; + } + incrementScore() { this.#score++; } diff --git a/screens/Tetris/__tests__/ScoreManager.test.js b/screens/Tetris/__tests__/ScoreManager.test.js new file mode 100644 index 0000000..e84654d --- /dev/null +++ b/screens/Tetris/__tests__/ScoreManager.test.js @@ -0,0 +1,71 @@ +import React from 'react'; +import ScoreManager from "../ScoreManager"; + + +test('incrementScore', () => { + let scoreManager = new ScoreManager(); + expect(scoreManager.getScore()).toBe(0); + scoreManager.incrementScore(); + expect(scoreManager.getScore()).toBe(1); +}); + +test('addLinesRemovedPoints', () => { + let scoreManager = new ScoreManager(); + scoreManager.addLinesRemovedPoints(0); + scoreManager.addLinesRemovedPoints(5); + expect(scoreManager.getScore()).toBe(0); + expect(scoreManager.getLevelProgression()).toBe(0); + + scoreManager.addLinesRemovedPoints(1); + expect(scoreManager.getScore()).toBe(40); + expect(scoreManager.getLevelProgression()).toBe(1); + + scoreManager.addLinesRemovedPoints(2); + expect(scoreManager.getScore()).toBe(140); + expect(scoreManager.getLevelProgression()).toBe(4); + + scoreManager.addLinesRemovedPoints(3); + expect(scoreManager.getScore()).toBe(440); + expect(scoreManager.getLevelProgression()).toBe(9); + + scoreManager.addLinesRemovedPoints(4); + expect(scoreManager.getScore()).toBe(1640); + expect(scoreManager.getLevelProgression()).toBe(17); +}); + +test('canLevelUp', () => { + let scoreManager = new ScoreManager(); + expect(scoreManager.canLevelUp()).toBeFalse(); + expect(scoreManager.getLevel()).toBe(0); + expect(scoreManager.getLevelProgression()).toBe(0); + + scoreManager.addLinesRemovedPoints(1); + expect(scoreManager.canLevelUp()).toBeTrue(); + expect(scoreManager.getLevel()).toBe(1); + expect(scoreManager.getLevelProgression()).toBe(1); + + scoreManager.addLinesRemovedPoints(1); + expect(scoreManager.canLevelUp()).toBeFalse(); + expect(scoreManager.getLevel()).toBe(1); + expect(scoreManager.getLevelProgression()).toBe(2); + + scoreManager.addLinesRemovedPoints(2); + expect(scoreManager.canLevelUp()).toBeFalse(); + expect(scoreManager.getLevel()).toBe(1); + expect(scoreManager.getLevelProgression()).toBe(5); + + scoreManager.addLinesRemovedPoints(1); + expect(scoreManager.canLevelUp()).toBeTrue(); + expect(scoreManager.getLevel()).toBe(2); + expect(scoreManager.getLevelProgression()).toBe(1); + + scoreManager.addLinesRemovedPoints(4); + expect(scoreManager.canLevelUp()).toBeFalse(); + expect(scoreManager.getLevel()).toBe(2); + expect(scoreManager.getLevelProgression()).toBe(9); + + scoreManager.addLinesRemovedPoints(2); + expect(scoreManager.canLevelUp()).toBeTrue(); + expect(scoreManager.getLevel()).toBe(3); + expect(scoreManager.getLevelProgression()).toBe(2); +});