From 81479ffd40251584b368d1b87dc089b6b9288955 Mon Sep 17 00:00:00 2001
From: Aadhar Agarwal <30381180+Aadhar3@users.noreply.github.com>
Date: Thu, 3 Sep 2020 05:09:01 -0400
Subject: [PATCH] fix: add tests for metric-imperial-converter (infosec)
(#37891)
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
Co-authored-by: Shaun Hamilton <51722130+Sky020@users.noreply.github.com>
Co-authored-by: Shaun Hamilton <2397860h@student.gla.ac.uk>
---
.../metric-imperial-converter.english.md | 78 +++++++++++++++++--
1 file changed, 70 insertions(+), 8 deletions(-)
diff --git a/curriculum/challenges/english/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.english.md b/curriculum/challenges/english/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.english.md
index 54ca481453..859f1aa5b0 100644
--- a/curriculum/challenges/english/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.english.md
+++ b/curriculum/challenges/english/06-quality-assurance/quality-assurance-projects/metric-imperial-converter.english.md
@@ -30,14 +30,76 @@ tests:
testString: ''
- text: 'I can GET /api/convert with a single parameter containing an accepted number and unit and have it converted. (Hint: Split the input by looking for the index of the first character which will mark the start of the unit)'
testString: ''
- - text: I can convert 'gal' to 'L' and vice versa. (1 gal to 3.78541 L)
- testString: ''
- - text: I can convert 'lbs' to 'kg' and vice versa. (1 lbs to 0.453592 kg)
- testString: ''
- - text: I can convert 'mi' to 'km' and vice versa. (1 mi to 1.60934 km)
- testString: ''
- - text: If my unit of measurement is invalid, returned will be 'invalid unit'.
- testString: ''
+ - text: I can convert 'gal'
to 'L'
and vice versa. (1 gal to 3.78541 L)
+ testString: "async getUserInput => {
+ try {
+ const data1 = await $.get(getUserInput('url') + '/api/convert?input=1gal');
+ assert.equal(data1.returnNum, 3.78541);
+ assert.equal(data1.returnUnit, 'l');
+ const data2 = await $.get(getUserInput('url') + '/api/convert?input=10gal');
+ assert.equal(data2.returnNum, 37.8541);
+ assert.equal(data2.returnUnit, 'l');
+ const data3 = await $.get(getUserInput('url') + '/api/convert?input=1l');
+ assert.equal(data3.returnNum, 0.26417);
+ assert.equal(data3.returnUnit, 'gal');
+ const data4 = await $.get(getUserInput('url') + '/api/convert?input=10l');
+ assert.equal(data4.returnNum, 2.64172);
+ assert.equal(data4.returnUnit, 'gal');
+ } catch(xhr) {
+ throw new Error(xhr.responseText);
+ }
+ }
+ "
+ - text: I can convert 'lbs'
to 'kg'
and vice versa. (1 lbs to 0.453592 kg)
+ testString: "async getUserInput => {
+ try {
+ const data1 = await $.get(getUserInput('url') + '/api/convert?input=1lbs');
+ assert.equal(data1.returnNum, 0.45359);
+ assert.equal(data1.returnUnit, 'kg');
+ const data2 = await $.get(getUserInput('url') + '/api/convert?input=10lbs');
+ assert.equal(data2.returnNum, 4.53592);
+ assert.equal(data2.returnUnit, 'kg');
+ const data3 = await $.get(getUserInput('url') + '/api/convert?input=1kg');
+ assert.equal(data3.returnNum, 2.20462);
+ assert.equal(data3.returnUnit, 'lbs');
+ const data4 = await $.get(getUserInput('url') + '/api/convert?input=10kg');
+ assert.equal(data4.returnNum, 22.04624);
+ assert.equal(data4.returnUnit, 'lbs');
+ } catch(xhr) {
+ throw new Error(xhr.responseText);
+ }
+ }
+ "
+ - text: I can convert 'mi'
to 'km'
and vice versa. (1 mi to 1.60934 km)
+ testString: "async getUserInput => {
+ try {
+ const data1 = await $.get(getUserInput('url') + '/api/convert?input=1mi');
+ assert.equal(data1.returnNum, 1.60934);
+ assert.equal(data1.returnUnit, 'km');
+ const data2 = await $.get(getUserInput('url') + '/api/convert?input=10mi');
+ assert.equal(data2.returnNum, 16.0934);
+ assert.equal(data2.returnUnit, 'km');
+ const data3 = await $.get(getUserInput('url') + '/api/convert?input=1km');
+ assert.equal(data3.returnNum, 0.62137);
+ assert.equal(data3.returnUnit, 'mi');
+ const data4 = await $.get(getUserInput('url') + '/api/convert?input=10km');
+ assert.equal(data4.returnNum, 6.21373);
+ assert.equal(data4.returnUnit, 'mi');
+ } catch(xhr) {
+ throw new Error(xhr.responseText);
+ }
+ }
+ "
+ - text: If my unit of measurement is invalid, returned will be 'invalid unit'
.
+ testString: "async getUserInput => {
+ try {
+ const data = await $.get(getUserInput('url') + '/api/convert?input=1min');
+ assert(data.initUnit === 'invalid unit' || data === 'invalid unit');
+ } catch(xhr) {
+ throw new Error(xhr.responseText);
+ }
+ }
+ "
- text: If my number is invalid, returned with will 'invalid number'.
testString: ''
- text: If both are invalid, return will be 'invalid number and unit'.