Skip to content

Commit

Permalink
test(intg): ensure percentage calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
lemredd committed Dec 23, 2022
1 parent 552381b commit cb99f39
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions src/components/CalculatorContainer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,40 @@ describe("Component: CalculatorContainer", () => {
expect(entryScrn.value).toEqual("2")
})

it("can derive percentage as such: `entryValue * (previousEvaluatedValue / 100)`", async() => {
const wrapper = mount(Component)
const evaluationScrn = wrapper.find(".evaluation-screen")
const entryScrn = wrapper.find(".entry-screen").element as HTMLInputElement

// Find the digits "9" and "0" buttons and click them
const digitalBtns = wrapper.findAll(".digital-button")
const [digital9Btn, digital0Btn] = digitalBtns.filter(
btn => btn.text() === "9" || btn.text() === "0"
)
await digital9Btn.trigger("click")
expect(entryScrn.value).toEqual("9")
await digital0Btn.trigger("click")
expect(entryScrn.value).toEqual("90")
expect(evaluationScrn.text()).toEqual("")

// Find the Percentage button and click it
const evaluationBtns = wrapper.findAll(".evaluation-button")
const [percentageBtn] = evaluationBtns.filter(btn => btn.text() === "%")
await percentageBtn.trigger("click")

// This implicitly expects that `previousEvaluatedValue === 0`
expect(entryScrn.value).toEqual("0")
expect(evaluationScrn.text()).toEqual("0")

// Mock mutation of `previousEvaluatedValue`
const wrapperInternals = wrapper.vm as any
wrapperInternals.previousEvaluatedValue = "50"
await digital9Btn.trigger("click")
await digital0Btn.trigger("click")
await percentageBtn.trigger("click")
expect(entryScrn.value).toEqual("45")
expect(evaluationScrn.text()).toEqual("45")
})

it.todo("can continuously evaluate")
})

0 comments on commit cb99f39

Please sign in to comment.