From 8b43683038dce383d6347281a92194efb8f1776a Mon Sep 17 00:00:00 2001 From: Francis Anthony Date: Tue, 18 Jun 2024 11:59:16 +0800 Subject: [PATCH] Add tests refs #117 --- components/_app/listing/function.ts | 1 - .../_app/listing/ListingMainInfo.cy.tsx | 39 ++++++++++++------- tests/app/listing-main-info.test.ts | 31 ++++++++++++++- 3 files changed, 55 insertions(+), 16 deletions(-) diff --git a/components/_app/listing/function.ts b/components/_app/listing/function.ts index 05f8c4ec..51144164 100644 --- a/components/_app/listing/function.ts +++ b/components/_app/listing/function.ts @@ -40,7 +40,6 @@ export function availableDateText( }).format(availableDate); } -// TODO: Unit test export function depositText(deposit?: number): string { if (deposit === undefined || deposit <= 0) { return "None"; diff --git a/cypress/component/_app/listing/ListingMainInfo.cy.tsx b/cypress/component/_app/listing/ListingMainInfo.cy.tsx index 54036b8a..0ba0be2a 100644 --- a/cypress/component/_app/listing/ListingMainInfo.cy.tsx +++ b/cypress/component/_app/listing/ListingMainInfo.cy.tsx @@ -1,7 +1,5 @@ import ListingMainInfo from "@/components/_app/listing/main-info"; -// TODO: Add deposit - describe('Listing Main Info', () => { describe("display correct UI when", () => { afterEach(() => { @@ -13,10 +11,18 @@ describe('Listing Main Info', () => { .should('be.visible') .and('exist') .and('have.text', 'Date Available') + cy.get('[data-cy="listing-main-info-address-space"]') + .should('not.be.visible') + .and('exist') + cy.get('[data-cy="listing-main-info-col-label-deposit"]') + .should('be.visible') + .and('exist') + .and('have.text', 'Deposit') }) - it("Multiple beds, multiple baths, null available date, null zipcode", () => { + it("Multiple beds, multiple baths, null available date, null zipcode, negative deposit", () => { cy.mount( { .should('be.visible') .and('exist') .and('have.text', 'Available Now') + cy.get('[data-cy="listing-main-info-col-value-deposit"]') + .should('be.visible') + .and('exist') + .and('have.text', 'None') cy.get('[data-cy="listing-main-info-address-line"]') .should('be.visible') .and('exist') .and('have.text', '8508 Vandervort Crest Apt. 828,') - cy.get('[data-cy="listing-main-info-address-space"]') - .should('not.be.visible') - .and('exist') cy.get('[data-cy="listing-main-info-address-city-state-zip"]') .should('be.visible') .and('exist') .and('contain.text', 'East Wallace, Louisiana') }); - it("Single bed, single bath, future available date, with zipcode", () => { + it("Single bed, single bath, future available date, with zipcode, zero deposit", () => { cy.mount( { .should('be.visible') .and('exist') .and('have.text', 'June 20, 2035') + cy.get('[data-cy="listing-main-info-col-value-deposit"]') + .should('be.visible') + .and('exist') + .and('have.text', 'None') cy.get('[data-cy="listing-main-info-address-line"]') .should('be.visible') .and('exist') .and('have.text', '84162 S Front Street Apt. 807,') - cy.get('[data-cy="listing-main-info-address-space"]') - .should('not.be.visible') - .and('exist') cy.get('[data-cy="listing-main-info-address-city-state-zip"]') .should('be.visible') .and('exist') .and('contain.text', 'Prosaccoborough, Hawaii 88950') }); - it("Multiple beds, single bath, before available date, with zipcode", () => { + it("Multiple beds, single bath, before available date, with zipcode, with deposit", () => { cy.mount( { .should('be.visible') .and('exist') .and('have.text', 'Available Now') + cy.get('[data-cy="listing-main-info-col-value-deposit"]') + .should('be.visible') + .and('exist') + .and('have.text', '₱1,236') cy.get('[data-cy="listing-main-info-address-line"]') .should('be.visible') .and('exist') .and('have.text', '26846 Hartmann Trace Apt. 561,') - cy.get('[data-cy="listing-main-info-address-space"]') - .should('not.be.visible') - .and('exist') cy.get('[data-cy="listing-main-info-address-city-state-zip"]') .should('be.visible') .and('exist') diff --git a/tests/app/listing-main-info.test.ts b/tests/app/listing-main-info.test.ts index 999e368c..7c63378d 100644 --- a/tests/app/listing-main-info.test.ts +++ b/tests/app/listing-main-info.test.ts @@ -1,4 +1,7 @@ -import { availableDateText } from "../../components/_app/listing/function"; +import { + availableDateText, + depositText, +} from "../../components/_app/listing/function"; describe("listing page main info", () => { test.each([ @@ -25,4 +28,30 @@ describe("listing page main info", () => { expect(actual).toBe(output); } ); + + test.each([ + { + deposit: -92232, + output: "None", + }, + { + deposit: -0.001, + output: "None", + }, + { + deposit: 0, + output: "None", + }, + { + deposit: 998, + output: "₱998", + }, + { + deposit: 76231, + output: "₱76,231", + }, + ])("deposit text = $deposit", ({ deposit, output }) => { + const actual = depositText(deposit); + expect(actual).toBe(output); + }); });