Coder Social home page Coder Social logo

disasterman78 / zoopla_test Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 39 KB

Coding test for Zoopla

JavaScript 58.08% Gherkin 12.08% HTML 2.54% CSS 27.29%
nodejs vanillajs sass gulp ajax selenium selenium-webdriver cucumber mustache handlebars express chai

zoopla_test's Introduction

These are the notes that came with the test - for development notes please refer to devNotes.md

Developer test

Create simple Node.js based application that simulates simple search for an area and displays search results.  

Please read through the test description below to fully understand what is required. All assets needed to complete this test are attached.

Available assets

  • JSON data that simulates output from API
  • wireframes for 3 different viewports

Requirements

  • proposed user stories are complete
  • code is unit tested
  • Node.js on the server
  • feel free to use test framework of your choice
  • accessible via keyboard

User acceptance criteria

Features below cover all user acceptance criteria from data manipulation, simple functionality and also what is expected to be rendered in the client. For visual guidance please refer to attached wireframes

Routing

Feature: Application needs to provide basic routing and send all other requests to 404 page

    Scenario: Show not found page
        Given I enter a path in browser's address bar
            And path is not "/search"
            And path is not "/results"
        Then "404" page should be returned
            And page should display "Requested page not found"

Data manipulation

Feature: Data coming from API needs to be updated for correct display in the client.

    Scenario: Create property title
        Given API provides "number of bedrooms"
            And API provides "property type"
        When property title is rendered by client
        Then it needs to print out '"number of bedrooms" bedroom "property type" for sale'

    Scenario: Create agent address
        Given API provides "agent address"
            And API provides "agent postcode"
        When agent address is rendered in the client
        Then it needs to print out '"agent address", "agent postcode"'

    Scenario: Format price
        Given API provides "price"
        When "price" is rendered in the client
        Then it needs to be printed as "£X,XXX,XXX" format

Search functionality

Feature: Users need to be able to search for area by postcode

    Scenario: Search page is displayed
        Given I want to search for properties on the website
        When I visit "/search" page
        Then I am presented with a search field and submit button

    Scenario: Search for area returns results
        Given search page is rendered
            And search field is present
            And submit button is present
        When I enter "N11" postcode to search field
            And I submit search query
        Then I am presented with "results" page showing ordered list of results
            And page shows '"number of results" found'
            And each result contains "property image"
            And each result contains "property title"
            And each result contains "property price"
            And each result contains "property description"
            And each result contains agent data consisting of "agent logo", "agent name", "agent address" and "agent phone number"

    Scenario: Search for an area for which there are no results
        Given search page is rendered
            And search field is present
            And submit button is present
        When I enter "SE1" to search field
            And I submit search query
        Then search page returns message "No results found"
            And search search field is shown
            And submit button is shown

Rendering in client

Feature: Search results page needs to be responsive and support 3 different viewports

    Scenario: Small screen user
        Given a search was performed for "N11"
        When "results" page renders ordered list of results for given search term
        Then each result occupies full width of the screen
            And each result's items occupy full width of the screen
            And each result's items are left aligned

    Scenario: Medium size screen user
        Given a search was performed for "N11"
        When "results" page renders ordered list of results for given search term
        Then each result is split into 2 rows
            And first row is split into 2 equally wide columns
            And first column renders "property image"
            And second column renders "property title" followed by "property price" and "property description"
            And last row occupies full width
            And contains "agent logo" followed by "agent name", "agent address" and "agent phone number"

    Scenario: Large screen user
        Given a search was performed for "N11"
        When "results" page renders ordered list of results for given search term
        Then each result is split into 3 columns
            And first column renders "property image"
            And second column renders "property title" followed by "property price" and "property description"
            And last column renders "agent logo" followed by "agent name", "agent address" and "agent phone number"

Final notes

Please let us know if you liked the test and how long it took you to complete it.

zoopla_test's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.