Git Product home page Git Product logo

iban-validator-react-tdd-kata's Introduction

IBAN* validator in React with TDD Kata

This project helps to learn shipping React app using Test-driven Development.


  • IBAN — International Bank Account Number

iban-validator-react-tdd-kata's People

Contributors

adnenre avatar niksumeiko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

iban-validator-react-tdd-kata's Issues

Validate IBAN

Overview

Enable the user to explore IBAN details or provide feedback when the IBAN is invalid.

Acceptance criteria

1. Create a page with the form:
- IBAN input field
- Validate button
 

2. Send IBAN to the API
When the user submits the form
 

3. Display valid IBAN details
- Validation states (based on flags from API response)
- - "Valid IBAN" when the response is successful
- - "Trusted bank" when bank.trustScore is over 7
- - "Accepts instant payments" when flags include INSTANT
- - "Positive operation history" when flags include POSITIVE_HISTORY
- - "No security claims" when flags miss SECURITY_CLAIMS
- - "Complies with Payment Services Directive (PSD2)" when flags include PSD2
 

4. Display invalid state when IBAN is invalid
- - When API throws — the IBAN is invalid
- - When a response is successful, the given IBAN is valid.

Design

Successful IBAN validation
Image

Invalid IBAN
Image

API specification

The validation is created via GET /validate endpoint.

Expected request:

Attribute Type
iban string

Response:

Attribute Type
iban string
flags enum[]
INSTANT | POSITIVE_HISTORY | SECURITY_CLAIMS | PSD2
bank?.trustScore? number(0-10)

Test data

- AT0309000000000019176655
- RO23INGB0001000000000222
- CZ3608000000002996530173

See the currency IBAN supports

Overview

Enable the user to see which currency the IBAN supports.

Acceptance criteria

1. Display the currency underneath formatted IBAN
 

Design

Image

SDK specification

Employ @partner/super-countries JavaScript SDK (from our partner) to retrieve the currency.

Usage:

import { findCountryByIso2Code } from '@partner/super-countries';

const { currency } = await findCountryByIso2Code('AT');

Result:

{
  "code": "EUR",
  "name": "Euro",
  "symbol": ""
}

ℹ Consume country code (e.g., AT) from the bank.address.country attribute in the validation API response.
 

API specification

The validation is created via POST /validate endpoint.

Expected request:

Attribute Type
iban string

Response:

Attribute Type
iban string
flags enum[]
INSTANT | POSITIVE_HISTORY | SECURITY_CLAIMS | PSD2
bank?.trustScore? number(0-10)
bank?.name? string
bank?.address?.street? string
bank?.address?.city? string
bank?.address?.zip? string
bank?.address?.country? ISO2(string)

Test data

- AT0309000000000019176655
- GB29NWBK60161331926819
- SA3245000000001123456001

See bank details the IBAN belongs to

Overview

Enable the user to see the bank IBAN belongs to.

Acceptance criteria

1. Display bank details
- Join bank.name and bank.address using , (comma) separator
- Join bank address parts using , (comma)
- Join city and zip using (space)

(Consider the bank.name and all address details are optional API response attributes)

Example:

Erste Bank, Am Belvedere 1, 1100 Vienna, AT
^name       ^street         ^zip ^city   ^country

 

Design

API specification

The validation is created via GET /validate endpoint.

Expected request:

Attribute Type
iban string

Response:

Attribute Type
iban string
flags enum[]
INSTANT | POSITIVE_HISTORY | SECURITY_CLAIMS | PSD2
bank?.trustScore? number(0-10)
bank?.name? string
bank?.address?.street? string
bank?.address?.city? string
bank?.address?.zip? string
bank?.address?.country? ISO2(string)

Test data

- HU14116000060000000084586199
- HR8523300033203674306

See missing or invalid IBAN

Overview

Provide the user with feedback when the IBAN is missing or invalid.

Acceptance criteria

1. Display validation message when IBAN is missing
 

2. Display invalid state when IBAN is invalid
- When API throws an error
 

Design

Missing IBAN
Image

Invalid IBAN
Image

API specification

The validation is created via GET /validate endpoint.

Expected request:

Attribute Type
iban string

- When a response is successful, the given IBAN is valid.
- When API throws — the IBAN is invalid

Test data

- LV64HABA0551018676991

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.