diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with-.deepequal-and-.notdeepequal/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with-.deepequal-and-.notdeepequal/index.md
index a96a99b8c2..1008298620 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with-.deepequal-and-.notdeepequal/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/assert-deep-equality-with-.deepequal-and-.notdeepequal/index.md
@@ -3,8 +3,24 @@ title: Assert Deep Equality with .deepEqual and .notDeepEqual
---
## Assert Deep Equality with .deepEqual and .notDeepEqual
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Equality'
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ` /** 7 */` pass.
-
+## Hint 1
+
+Deep equality checks if two objects, and their child objects, are equal to one another using the `==` operator.
+
+## Hint 2
+
+The lines in the test should be changed from `assert.fail()` to either `assert.deepEqual()` or `assert.notDeepEqual()`
+
+## Solution
+```js
+/** 7 - .deepEqual(), .notDeepEqual() **/
+// .deepEqual() asserts that two object are deep equal
+test('#deepEqual, #notDeepEqual', function() {
+ assert.deepEqual( { a: '1', b: 5 } , { b: 5, a: '1' }, "keys order doesn't matter" );
+ assert.notDeepEqual( { a: [5, 6] }, { a: [6, 5] }, "array elements position does matter !!" );
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements/index.md
index 788d936f98..2379a1fc72 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/compare-the-properties-of-two-elements/index.md
@@ -3,8 +3,26 @@ title: Compare the Properties of Two Elements
---
## Compare the Properties of Two Elements
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Comparisons'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ` /** 8 */` pass.
-
+## Hint 1
+
+`isAbove()` compares if the first parameter is greater than the second `(a > b)`
+`isAtMost()` compares if the first parameter is equal to or less than the second `(a <= b)`
+
+## Hint 2
+
+The lines in the test should be changed from `assert.fail()` to either `assert.isAbove()` or `assert.isAtMost()`.
+
+## Solution
+```js
+/** 8 - .isAbove() => a > b , .isAtMost() => a <= b **/
+test('#isAbove, #isAtMost', function() {
+ assert.isAtMost('hello'.length , 5);
+ assert.isAbove(1, 0);
+ assert.isAbove(Math.PI, 3);
+ assert.isAtMost(1 - Math.random(), 1);
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work/index.md
index 7e3e3a0730..d70b2e53a8 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/learn-how-javascript-assertions-work/index.md
@@ -3,8 +3,20 @@ title: Learn How JavaScript Assertions Work
---
## Learn How JavaScript Assertions Work
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js".
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this first challenge requires you to make the tests in ` /** 1 */` to pass.
-
+## Hint 1
+
+The two lines in the test should be changed from `assert.fail()` to either `assert.isNull()` or `assert.isNotNull()`.
+
+## Solution
+
+```js
+/** 1 - Use assert.isNull() or assert.isNotNull() to make the tests pass. **/
+test('#isNull, #isNotNull', function() {
+ assert.isNull(null, 'this is an optional error description - e.g. null is null');
+ assert.isNotNull( 1, '1 is not null');
+});
+```
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method/index.md
index fa4383103e..8b3e52ae5e 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method/index.md
@@ -3,8 +3,40 @@ title: Run Functional Tests on an API Response using Chai-HTTP III - PUT method
---
## Run Functional Tests on an API Response using Chai-HTTP III - PUT method
-This is a stub. Help our community expand it.
+To begin, open the file "tests/2_functional_tests.js" and locate the test 'send {surname: "Colombo"}'
-This quick style guide will help ensure your pull request gets accepted.
+## Hint 1
-
+Using the example above, look at the assertions and how they are making comparisons between the expected and actual values of the response
+
+## Hint 2
+
+You need to use .send() to attach the payload `{surname: 'Colombo'}` to the request
+
+## Hint 3
+
+Replace the `assert.fail()` statement with your own tests checking for status, type, body.name, and body.surname in that order. Remember, all of these values are contained in the response (`res`), and you should expect the response to be of type `'application/json'`.
+
+## Solution
+
+```js
+test('send {surname: "Colombo"}', function(done){
+
+ // we setup the request for you...
+ chai.request(server)
+ .put('/travellers')
+ /** send {surname: 'Colombo'} here **/
+ .send({surname: 'Colombo'})
+ // .send({...})
+ .end(function(err, res){
+
+ /** your tests here **/
+ assert.equal(res.status, 200, 'response status should be 200');
+ assert.equal(res.type, 'application/json', "Response should be json");
+ assert.equal(res.body.name, 'Cristoforo', 'res.body.name should be "Christoforo"');
+ assert.equal(res.body.surname, 'Colombo', 'res.body.surname should be "Colombo"');
+
+ done(); // Never forget the 'done()' callback...
+ });
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method/index.md
index 3ebf8b356e..9dc3459ce3 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method/index.md
@@ -3,8 +3,49 @@ title: Run Functional Tests on an API Response using Chai-HTTP IV - PUT method
---
## Run Functional Tests on an API Response using Chai-HTTP IV - PUT method
-This is a stub. Help our community expand it.
+To begin, open the file "tests/2_functional_tests.js" and locate the test 'send {surname: "da Verrazzano"}'.
-This quick style guide will help ensure your pull request gets accepted.
+## Hint 1
-
+Using the example above, look how the request is being sent, and how the assertions are making comparisons between the expected and actual values of the response.
+
+## Hint 2
+
+Make sure you are placing a request through `chai.request(server)`.
+
+## Hint 3
+
+You need to use make a .put() request to `/travellers` and use .send() to attach the payload `{surname: 'da Verrazzano'}` to the request.
+
+## Hint 4
+
+Replace the assert.fail() statement with your own tests checking for status, type, body.name, and body.surname in that order. Remember, all of these values are contained in the response `(res`), and you should expect the response to be of type `'application/json'`.
+
+## Hint 5
+
+Check the tests on the challenge page to determine the expected values for `body.name` and `body.surname`.
+
+## Hint 6
+
+Ensure your call to `done()` is inside your callback function for the tests.
+
+## Solution
+
+```js
+test('send {surname: "da Verrazzano"}', function(done) {
+ /** place the chai-http request code here... **/
+ chai.request(server)
+ .put('/travellers')
+ .send({surname: 'da Verrazzano'})
+ /** place your tests inside the callback **/
+ .end(function(err, res){
+
+ assert.equal(res.status, 200, 'response status should be 200');
+ assert.equal(res.type, 'application/json', "Response should be json");
+ assert.equal(res.body.name, 'Giovanni');
+ assert.equal(res.body.surname, 'da Verrazzano');
+
+ done();
+ });
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii/index.md
index 6377f000c5..71633001b4 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii/index.md
@@ -3,8 +3,34 @@ title: Run Functional Tests on API Endpoints using Chai-HTTP II
---
## Run Functional Tests on API Endpoints using Chai-HTTP II
-This is a stub. Help our community expand it.
+To begin, open the file "tests/2_functional_tests.js" and locate 'Test GET /hello with your name'.
-This quick style guide will help ensure your pull request gets accepted.
+## Hint 1
-
+Using the example above, look at the assertions and how they are making comparisons between the expected and actual values of the response.
+
+## Hint 2
+
+Make sure you have entered your own name (or whichever name you are inputting) into both the query (line 67)and the assertion for `res.text` (line 74) in order for the test to pass.
+
+## Hint 3
+
+The lines in the test should be changed from `assert.fail()` to an assertion that checks if the two values are equal.
+
+## Solution
+
+```js
+test('Test GET /hello with your name', function(done){ // Don't forget the callback...
+ chai.request(server) // 'server' is the Express App
+ .get('/hello?name=John') /** <=== Put your name in the query **/
+ .end(function(err, res){ // res is the response object
+
+ // Your tests here.
+ // Replace assert.fail(). Make the test pass.
+ // Test the status and the text response. Follow the test order like above.
+ assert.equal(res.status, 200);
+ assert.equal(res.text, 'hello John'/** <== Put your name here **/);
+ done(); // Always call the 'done()' callback when finished.
+ });
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http/index.md
index 4ef79b8ea0..6706c0847c 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http/index.md
@@ -3,8 +3,30 @@ title: Run Functional Tests on API Endpoints using Chai-HTTP
---
## Run Functional Tests on API Endpoints using Chai-HTTP
-This is a stub. Help our community expand it.
+To begin, open the file "tests/2_functional_tests.js" and locate 'Test GET /hello with no name'.
-This quick style guide will help ensure your pull request gets accepted.
+## Hint 1
-
+Using the example above, look at the assertions and how they are making comparisons between the expected and actual values of the response.
+
+## Hint 2
+
+The lines in the test should be changed from `assert.fail()` to an assertion that checks if the two values are equal.
+
+## Solution
+
+```js
+test('Test GET /hello with no name', function(done){ // Don't forget the callback...
+ chai.request(server) // 'server' is the Express App
+ .get('/hello') // http_method(url). NO NAME in the query !
+ .end(function(err, res){ // res is the response object
+
+ // Test the status and the text response (see the example above).
+ // Please follow the order -status, -text. We rely on that in our tests.
+ // It should respond 'Hello Guest'
+ assert.equal(res.status, 200);
+ assert.equal(res.text, 'hello Guest');
+ done(); // Always call the 'done()' callback when finished.
+ });
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii/index.md
index d074c4ecff..5bcde837be 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii/index.md
@@ -3,8 +3,55 @@ title: Run Functional Tests using a Headless Browser II
---
## Run Functional Tests using a Headless Browser II
-This is a stub. Help our community expand it.
+To begin, open the file "tests/2_functional_tests.js" and locate the browser based tests.
-This quick style guide will help ensure your pull request gets accepted.
+Change the Browser.site link to the current URL of your project if you are completing this challenge online. If you are using a local development environment, replace the line with ```Browser.localhost('example.com', (process.env.PORT || 3000));```.
-
+Find test 'submit "surname" : "Vespucci" - write your e2e test...' and check the challenge page for the expected values in order to pass this challenge.
+
+## Hint 1
+
+Using the example above, look at how the form is being submitted, and how the assertions are making comparisons between the expected and actual values of the response.
+
+## Hint 2
+
+Fill the broswer with a surname of Vespucci, then use pressButton to submit.
+
+## Hint 3
+
+In the callback for pressButton, all assertions should be browser.assert in order to correctly pass.
+
+## Hint 4
+
+Replace the `assert.fail()` statement with your own tests based on the instructions in the comments. Check the example above for syntax if you get stuck.
+
+## Hint 4
+
+Check the tests on the challenge page or the instructions in the comments for expected values.
+
+## Hint 5
+
+Make sure your `done()` call is within the pressButton callback.
+
+## Solution
+
+```js
+test('submit "surname" : "Vespucci" - write your e2e test...', function(done) {
+ // fill the form, and submit.
+ browser
+ .fill('surname', 'Vespucci')
+ .pressButton('submit', function(){
+
+ // assert that status is OK 200
+ browser.assert.success();
+ // assert that the text inside the element 'span#name' is 'Amerigo'
+ browser.assert.text('span#name', 'Amerigo');
+ // assert that the text inside the element 'span#surname' is 'Vespucci'
+ browser.assert.text('span#surname', 'Vespucci');
+ // assert that the element(s) 'span#dates' exist and their count is 1
+ browser.assert.element('span#dates', 1);
+
+ done();
+ });
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser/index.md
index 33f71b3b15..5351c32f3c 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser/index.md
@@ -3,8 +3,59 @@ title: Run Functional Tests using a Headless Browser
---
## Run Functional Tests using a Headless Browser
-This is a stub. Help our community expand it.
+To begin, open the file "tests/2_functional_tests.js" and locate the browser based tests.
-This quick style guide will help ensure your pull request gets accepted.
+Change the Browser.site link to the current URL of your project if you are completing this challenge online. If you are using a local development environment, replace the line with ```Browser.localhost('example.com', (process.env.PORT || 3000));```.
-
+Find test 'submit "surname" : "Colombo" - write your e2e test...' and read the instructions to determine how to pass this challenge.
+
+## Hint 1
+
+Using the example above, look at how the assertions are making comparisons between the expected and actual values of the response.
+
+## Hint 2
+
+All assertions should be browser.assert in order to correctly pass.
+
+## Hint 3
+
+Replace the `assert.fail()` statement with your own tests based on the instructions in the comments. Check the example above for syntax if you get stuck.
+
+## Hint 4
+
+Check the tests on the challenge page for expected values.
+
+## Solution
+
+```js
+test('submit "surname" : "Colombo" - write your e2e test...', function(done) {
+
+ // fill the form...
+ // then submit it pressing 'submit' button.
+ //
+ // in the callback...
+ // assert that status is OK 200
+ // assert that the text inside the element 'span#name' is 'Cristoforo'
+ // assert that the text inside the element 'span#surname' is 'Colombo'
+ // assert that the element(s) 'span#dates' exist and their count is 1
+ browser
+ .fill('surname', 'Colombo')
+ .pressButton('submit', function(){
+
+ /** YOUR TESTS HERE, Don't forget to remove assert.fail() **/
+
+ // pressButton is Async. Waits for the ajax call to complete...
+
+ // assert that status is OK 200
+ browser.assert.success();
+ // assert that the text inside the element 'span#name' is 'Cristoforo'
+ browser.assert.text('span#name', 'Cristoforo');
+ // assert that the text inside the element 'span#surname' is 'Colombo'
+ browser.assert.text('span#surname', 'Colombo');
+ // assert that the element(s) 'span#dates' exist and their count is 1
+ browser.assert.element('span#dates', 1);
+
+ done(); // It's an async test, so we have to call 'done()''
+ });
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness/index.md
index a23022772e..5431d1323a 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness/index.md
@@ -3,8 +3,22 @@ title: Test for Truthiness
---
## Test for Truthiness
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js".
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 4 */``` pass.
-
+## Hint 1
+
+The lines in the test should be changed from `assert.fail()` to either `assert.isTrue()` or `assert.isNotTrue()`.
+
+## Solution
+```js
+/** 4 - Use assert.isTrue() or assert.isNotTrue() to make the tests pass. **/
+// .isTrue(true) and .isNotTrue(everything else) will pass.
+// .isFalse() and .isNotFalse() also exist.
+test('#isTrue, #isNotTrue', function(){
+ assert.isTrue( true, 'true is true');
+ assert.isTrue( !!'double negation', 'double negation of a truthy is true');
+ assert.isNotTrue({ value: 'truthy' }, 'A truthy object is NOT TRUE (neither is false...)' );
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring/index.md
index 4247c9d113..f7c274d607 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-string-contains-a-substring/index.md
@@ -3,8 +3,28 @@ title: Test if a String Contains a Substring
---
## Test if a String Contains a Substring
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Strings'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 14 */``` pass.
-
+## Hint 1
+
+Check the responses of the error messages if your tests fail, and make sure you understand the values of the parameters being checked by the assertion.
+
+## Hint 2
+
+The lines in the test should be changed from `assert.fail()` to either `assert.include()` or `assert.notInclude()`.
+
+## Hint 3
+
+`assert.include()` and `assert.notInclude()` parameters take the form (haystack, needle, message) where the needle is what you are searching for in the haystack. The message provides feedback where there is an error.
+
+## Solution
+
+```js
+/** 14 - #include (on #notInclude ) works for strings too !! **/
+// It asserts that the actual string contains the expected substring
+test('String #include, #notInclude', function() {
+ assert.include('Arrow', 'row', "Arrow contains row...");
+ assert.notInclude('dart', 'queue', "But a dart doesn't contain a queue");
+});
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range/index.md
index df21b61961..ea6b62bf47 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-falls-within-a-specific-range/index.md
@@ -3,8 +3,27 @@ title: Test if a Value Falls within a Specific Range
---
## Test if a Value Falls within a Specific Range
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Comparisons'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 10 */``` pass.
-
+## Hint 1
+
+`approximately()` requires a range to make the tests pass. The expected value for both tests is currently 1, so you need to find a range that allows for all values to be accounted for.
+
+## Hint 2
+
+Check the error outputs, and try to understand what the +/- values in the errors mean with respect to a possible range of values.
+
+## Solution
+```js
+/** 10 - .approximately **/
+// .approximately(actual, expected, range, [message])
+// actual = expected +/- range
+// Choose the minimum range (3rd parameter) to make the test always pass
+// it should be less than 1
+test('#approximately', function() {
+ assert.approximately(weirdNumbers(0.5) , 1, /*edit this*/ 0.5 );
+ assert.approximately(weirdNumbers(0.2) , 1, /*edit this*/ 0.8 );
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string/index.md
index 549407540f..cba76173f6 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-a-string/index.md
@@ -3,8 +3,25 @@ title: Test if a Value is a String
---
## Test if a Value is a String
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Strings'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 13 */``` pass.
-
+## Hint 1
+
+Check the responses of the error messages if your tests fail, and make sure you understand the types of the parameters being checked by the assertion.
+
+## Hint 2
+
+The lines in the test should be changed from `assert.fail()` to either `assert.isString()` or `assert.isNotString()`.
+
+## Solution
+
+```js
+/** 13 - #isString asserts that the actual value is a string. **/
+test('#isString, #isNotString', function() {
+ assert.isNotString(Math.sin(Math.PI/4), 'a float is not a string');
+ assert.isString(process.env.PATH, 'env vars are strings (or undefined)');
+ assert.isString(JSON.stringify({type: 'object'}), 'a JSON is a string');
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array/index.md
index 1d65f233b5..53554fe9af 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-an-array/index.md
@@ -3,8 +3,20 @@ title: Test if a Value is an Array
---
## Test if a Value is an Array
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Arrays'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 11 */``` pass.
-
+## Hint 1
+
+The lines in the test should be changed from `assert.fail()` to either `assert.isArray()` or `assert.isNotArray()`.
+
+## Solution
+
+```js
+/** 11 - #isArray vs #isNotArray **/
+test('#isArray, #isNotArray', function() {
+ assert.isArray('isThisAnArray?'.split(''), 'String.prototype.split() returns an Array');
+ assert.isNotArray([1,2,3].indexOf(2), 'indexOf returns a number.');
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type/index.md
index 8f6ac3dbd2..4e3256b6c1 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-value-is-of-a-specific-data-structure-type/index.md
@@ -3,8 +3,33 @@ title: Test if a Value is of a Specific Data Structure Type
---
## Test if a Value is of a Specific Data Structure Type
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Objects'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 17 */``` pass.
-
+## Hint 1
+
+The challenge uses objects defined above the tests. Look closely at both, and determine whether the object or its properties will have the type being compared against in the assertion.
+
+## Hint 2
+
+Check the error messages to determine if your understanding of the object or property's type was correct.
+
+## Hint 3
+
+The lines in the test should be changed from `assert.fail()` to either `assert.typeOf()` or `assert.notTypeOf()`.
+
+## Solution
+
+```js
+test('#typeof, #notTypeOf', function() {
+ /** 17 #typeOf asserts that value’s type is the given string, **/
+ // as determined by Object.prototype.toString.
+ // Use #typeOf or #notTypeOf where appropriate
+ assert.typeOf(myCar, 'object');
+ assert.typeOf(myCar.model, 'string');
+ assert.notTypeOf(airlinePlane.wings, 'string');
+ assert.typeOf(airlinePlane.engines, 'array');
+ assert.typeOf(myCar.wheels, 'number');
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined/index.md
index e2bcb69450..35650c686d 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-a-variable-or-function-is-defined/index.md
@@ -3,8 +3,20 @@ title: Test if a Variable or Function is Defined
---
## Test if a Variable or Function is Defined
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js".
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 2 */``` pass.
-
+## Hint 1
+
+The lines in the test should be changed from `assert.fail()` to either `assert.isDefined()` or `assert.isUndefined()`.
+
+## Solution
+```js
+/** 2 - Use assert.isDefined() or assert.isUndefined() to make the tests pass. **/
+test('#isDefined, #isUndefined', function(){
+ assert.isDefined( null, 'null is not undefined');
+ assert.isUndefined( undefined, 'undefined IS undefined');
+ assert.isDefined( 'hello', 'a string is not undefined' );
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item/index.md
index dc338465f0..5695a6201a 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-array-contains-an-item/index.md
@@ -3,8 +3,28 @@ title: Test if an Array Contains an Item
---
## Test if an Array Contains an Item
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Arrays'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 12 */``` pass.
-
+## Hint 1
+
+The assertions are checking against variables defined before the 'Arrays' suite of tests, check carefully whether the array includes the value being asserted.
+
+## Hint 2
+
+The lines in the test should be changed from `assert.fail()` to either `assert.include()` or `assert.notInclude()`.
+
+## Hint 3
+
+`assert.include()` and `assert.notInclude()` parameters take the form (haystack, needle, message) where the needle is what you are searching for in the haystack. The message provides feedback where there is an error.
+
+## Solution
+
+```js
+/** 12 - #include vs #notInclude **/
+test('Array #include, #notInclude', function() {
+ assert.notInclude(winterMonths, 'jul', "It's summer in july...");
+ assert.include(backendLanguages, 'javascript', 'JS is a backend language !!');
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property/index.md
index 875e80bc7f..bb31a961c7 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-has-a-property/index.md
@@ -3,8 +3,30 @@ title: Test if an Object has a Property
---
## Test if an Object has a Property
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Objects'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 16 */``` pass.
-
+## Hint 1
+
+The challenge uses objects defined above the tests. Look closely at both, and determine whether the object will have a property or not.
+
+## Hint 2
+
+Check the error messages to determine if your understanding of the object's properties was correct.
+
+## Hint 3
+
+The lines in the test should be changed from `assert.fail()` to either `assert.property()` or `assert.notProperty()`.
+
+## Solution
+
+```js
+/** 16 - #property asserts that the actual object has a given property. **/
+// Use #property or #notProperty where appropriate
+test('#property, #notProperty', function() {
+ assert.notProperty(myCar, 'wings', 'A car has not wings');
+ assert.property(airlinePlane, 'engines', 'planes have engines');
+ assert.property(myCar, 'wheels', 'Cars have wheels');
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor/index.md
index 753b28364f..0a4f8e0a24 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-an-object-is-an-instance-of-a-constructor/index.md
@@ -3,8 +3,32 @@ title: Test if an Object is an Instance of a Constructor
---
## Test if an Object is an Instance of a Constructor
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Objects'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 18 */``` pass.
-
+## Hint 1
+
+The challenge uses objects defined above the tests. Look closely at both, and determine whether the object is an instance of the type being compared against in the assertion.
+
+## Hint 2
+
+Check the error messages to determine if your understanding of the object's instance was correct.
+
+## Hint 3
+
+The lines in the test should be changed from `assert.fail()` to either `assert.instanceOf()` or `assert.notInstanceOf()`.
+
+## Solution
+
+```js
+test('#instanceOf, #notInstanceOf', function() {
+
+ /** 18 #instanceOf asserts that an object is an instance of a constructor **/
+ // Use #instanceOf or #notInstanceOf where appropriate
+ assert.notInstanceOf(myCar, Plane);
+ assert.instanceOf(airlinePlane, Plane);
+ assert.instanceOf(airlinePlane, Object, 'everything is an Object');
+ assert.notInstanceOf(myCar.wheels, String );
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another/index.md
index 4604c3ab4d..f7d99083d0 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/test-if-one-value-is-below-or-at-least-as-large-as-another/index.md
@@ -3,8 +3,26 @@ title: Test if One Value is Below or At Least as Large as Another
---
## Test if One Value is Below or At Least as Large as Another
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Comparisons'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 9 */``` pass.
-
+## Hint 1
+
+`isBelow()` compares if the first parameter is less than the second ```(a < b)```.
+`isAtLeast()` compares if the first parameter is equal to or less than the second ```(a >= b)```.
+
+## Hint 2
+
+The lines in the test should be changed from `assert.fail()` to either `assert.isBelow()` or `assert.isAtLeast()`.
+
+## Solution
+```js
+/** 9 - .isBelow() => a < b , .isAtLeast => a >= b **/
+test('#isBelow, #isAtLeast', function() {
+ assert.isAtLeast('world'.length , 5);
+ assert.isAtLeast(2*Math.random(), 0);
+ assert.isBelow(5 % 2, 2);
+ assert.isBelow(2/3, 1);
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-assert.isok-and-assert.isnotok/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-assert.isok-and-assert.isnotok/index.md
index cb192695aa..ae53456161 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-assert.isok-and-assert.isnotok/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-assert.isok-and-assert.isnotok/index.md
@@ -3,8 +3,21 @@ title: Use Assert.isOK and Assert.isNotOK
---
## Use Assert.isOK and Assert.isNotOK
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js".
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 3 */``` pass.
-
+## Hint 1
+
+The lines in the test should be changed from `assert.fail()` to either `assert.isOk()` or `assert.isNotOk()`.
+
+## Solution
+```js
+/** 3 - Use assert.isOk() or assert.isNotOk() to make the tests pass. **/
+// .isOk(truthy) and .isNotOk(falsey) will pass
+test('#isOk, #isNotOk', function(){
+ assert.isNotOk( null, 'null is falsey');
+ assert.isOk( "I'm truthy", 'a string is truthy');
+ assert.isOk( true, 'true is truthy' );
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string/index.md
index 8aee7f5d04..7c381e9fcf 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-regular-expressions-to-test-a-string/index.md
@@ -3,8 +3,30 @@ title: Use Regular Expressions to Test a String
---
## Use Regular Expressions to Test a String
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Strings'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 15 */``` pass.
-
+## Hint 1
+
+The challenge uses function `formatPeople()` to produce a string, and then compares this to a regex. Look closely at both, and determine whether the regex will match the returned string or not.
+
+## Hint 2
+
+Check the error messages to determine if your understanding of the regex match was correct.
+
+## Hint 3
+
+The lines in the test should be changed from `assert.fail()` to either `assert.match()` or `assert.notMatch()` based on the regex from the line above.
+
+## Solution
+
+```js
+/** 15 - #match Asserts that th actual value **/
+// matches the second argument regular expression.
+test('#match, #notMatch', function() {
+ var regex = /^#\sname\:\s[\w\s]+,\sage\:\s\d+\s?$/;
+ assert.match(formatPeople('John Doe', 35), regex);
+ assert.notMatch(formatPeople('Paul Smith III', 'twenty-four'), regex);
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality/index.md
index 9e723525b2..076d75966b 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-the-double-equals-to-assert-equality/index.md
@@ -3,8 +3,22 @@ title: Use the Double Equals to Assert Equality
---
## Use the Double Equals to Assert Equality
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Equality'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 5 */``` pass.
-
+## Hint 1
+
+The lines in the test should be changed from `assert.fail()` to either `assert.equal()` or `assert.notEqual()`.
+
+## Solution
+```js
+/** 5 - .equal(), .notEqual() **/
+// .equal() compares objects using '=='
+test('#equal, #notEqual', function(){
+ assert.equal( 12, '12', 'numbers are coerced into strings with == ');
+ assert.notEqual( {value: 1}, {value:1}, '== compares object references');
+ assert.equal( 6 * '2', '12', 'no more hints...');
+ assert.notEqual( 6 + '2', '12', 'type your error message if you want' );
+});
+```
\ No newline at end of file
diff --git a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality/index.md b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality/index.md
index 66a7241012..5fb191e6aa 100644
--- a/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality/index.md
+++ b/guide/english/certifications/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai/use-the-triple-equals-to-assert-strict-equality/index.md
@@ -3,8 +3,22 @@ title: Use the Triple Equals to Assert Strict Equality
---
## Use the Triple Equals to Assert Strict Equality
-This is a stub. Help our community expand it.
+To begin, locate the file "tests/1_unit_tests.js" and scroll to the suite of tests for 'Equality'.
-This quick style guide will help ensure your pull request gets accepted.
+This file contains multiple suites of tests for the project, and this challenge requires you to make the tests in ``` /** 6 */``` pass.
-
+## Hint 1
+
+The lines in the test should be changed from `assert.fail()` to either `assert.strictEqual()` or `assert.notStrictEqual()`.
+
+## Solution
+```js
+/** 6 - .strictEqual(), .notStrictEqual() **/
+// .strictEqual() compares objects using '==='
+test('#strictEqual, #notStrictEqual', function(){
+ assert.notStrictEqual( 6, '6' );
+ assert.strictEqual( 6, 3*2 );
+ assert.strictEqual( 6 * '2', 12 );
+ assert.notStrictEqual( [1, 'a', {} ], [1, 'a', {}] );
+});
+```
\ No newline at end of file