Skip to content
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

just the tests #1632

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Frame class extracted into #addFrame method, tests amended accordingly
dorian8x committed May 20, 2024
commit 286ec23da3d4bd9cdeae57fa49fa0e3636c124f6
8 changes: 0 additions & 8 deletions frame.js

This file was deleted.

23 changes: 0 additions & 23 deletions frame.test.js

This file was deleted.

4 changes: 2 additions & 2 deletions scorecard.js
Original file line number Diff line number Diff line change
@@ -2,8 +2,8 @@ class Scorecard {
constructor() {
this.frames = [];
}
addFrame(frameToAdd) {
this.frames.push(frameToAdd);
addFrame(roll_1, roll_2 /* , roll_3 = null */) {
this.frames.push({"roll 1": roll_1, "roll 2": roll_2});
}
};

73 changes: 46 additions & 27 deletions scorecard.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
const Scorecard = require("./scorecard");
const Frame = require("./frame");

describe("the scorecard class", () => {
it("initializes with an empty array for the frames of the new game", () => {
@@ -9,75 +8,95 @@ describe("the scorecard class", () => {

it("can add new Frames", () => {
const testScorecard = new Scorecard;
const testFrame = new Frame(5, 4);
testScorecard.addFrame(testFrame);
expect(testScorecard.frames).toEqual([testFrame]);
const fakeFrame = {"roll 1": 5, "roll 2": 4};
testScorecard.addFrame(5, 4);
expect(testScorecard.frames).toEqual([fakeFrame]);
});

// it("thows an error if given non-numbers as values", () => {
// const testScorecard = new Scorecard;
// expect(testScorecard.addFrame("three", 4)).toThrow(/* */);
// });

// it("thows an error if given numbers out of range", () => {
// const testScorecard = new Scorecard;
// expect(testScorecard.addFrame(3, 11)).toThrow(/* */);
// });

// it("thows an error if given total value >10", () => {
// const testScorecard = new Scorecard;
// expect(testScorecard.addFrame(7, 4)).toThrow(/* */);
// });
// it("calculates the score", () => {
// const testScorecard = new Scorecard;
// expect(testScorecard.getScore()).toEqual(0);
// const testFrame1 = new Frame(5, 4);
// testScorecard.addFrame(testFrame1);
// testScorecard.addFrame(5, 4);
// expect(testScorecard.getScore()).toEqual(9);
// const testFrame2 = new Frame(5, 4);
// testScorecard.addFrame(testFrame2);
// testScorecard.addFrame(5, 4);
// expect(testScorecard.getScore()).toEqual(18);
// });

// it("throws an error if given more than 10 frames", () => {
// const testScorecard = new Scorecard;
// const testFrame = new Frame(3, 2);
// for (let i = 1 ; i < 11 ; i++) { // add ten frames
// testScorecard.addFrame(testFrame);
// testScorecard.addFrame(3, 2);
// };
// expect(testScorecard.addFrame(testFrame)).toThrow(/* */);
// });

// it("adds a bonus to the next roll if a frame lands a spare", () => {
// const testScorecard = new Scorecard;
// expect(testScorecard.getScore()).toEqual(0);
// const testFrame1 = new Frame(6, 4);
// testScorecard.addFrame(testFrame1);
// testScorecard.addFrame(6, 4);
// expect(testScorecard.getScore()).toEqual(10);
// const testFrame2 = new Frame(5, 4);
// testScorecard.addFrame(testFrame2);
// testScorecard.addFrame(5, 4);
// expect(testScorecard.getScore()).toEqual(24);
// });

// it("adds a bonus to the next two rolls if a frame lands a strike", () => {
// const testScorecard = new Scorecard;
// expect(testScorecard.getScore()).toEqual(0);
// const testFrame1 = new Frame(10, 0);
// testScorecard.addFrame(testFrame1);
// testScorecard.addFrame(10, 0);
// expect(testScorecard.getScore()).toEqual(10);
// const testFrame2 = new Frame(5, 4);
// testScorecard.addFrame(testFrame2);
// testScorecard.addFrame(5, 4);
// expect(testScorecard.getScore()).toEqual(28);
// });

// it("the bonus for a strike rolls over to the next frame in the case of two consecutive strikes", () => {
// const testScorecard = new Scorecard;
// expect(testScorecard.getScore()).toEqual(0);
// const testFrame1 = new Frame(10, 0);
// testScorecard.addFrame(testFrame1);
// testScorecard.addFrame(10, 0);
// expect(testScorecard.getScore()).toEqual(10);
// const testFrame2 = new Frame(10, 0);
// testScorecard.addFrame(testFrame2);
// testScorecard.addFrame(10, 0);
// expect(testScorecard.getScore()).toEqual(30);
// const testFrame3 = new Frame(5, 4);
// testScorecard.addFrame(testFrame3);
// testScorecard.addFrame(5, 4);
// expect(testScorecard.getScore()).toEqual(53);
// });

// it("allows for a third roll on the tenth frame in the case of a strike or spare", () => {
// const testScorecard = new Scorecard;
// for (let i = 1 ; i < 10 ; i++) { // add 9 frames
// testScorecard.addFrame(5, 4);
// };
// testScorecard.addFrame(3, 7, 4);
// expect(testScorecard.getScore()).toEqual(99);
// });

// it("allows for a third roll on the tenth frame in the case of a strike or spare", () => {
// const testScorecard = new Scorecard;
// for (let i = 1 ; i < 10 ; i++) { // add 9 frames
// testScorecard.addFrame(5, 4);
// };
// expect(testScorecard.addFrame(3, 7, 4)).not.toThrow(/* */);
// });

// it("logs 300 points for a perfect game", () => {
// const testScorecard = new Scorecard;
// const testFrame = new Frame(10, 0);
// for (let i = 1 ; i < 10 ; i++) {
// for (let i = 1 ; i < 10 ; i++) { // add 9 strikes
// testScorecard.addFrame(testFrame);
// };
// const testTenthFrame = new Frame(10, 10, 10);
// testScorecard.addFrame(testTenthFrame);
// testScorecard.addFrame(10, 10, 10);
// expect(testScorecard.getScore()).toEqual(300);
// });
});