E62: Experience testing your final project

Your final project should provide a set of acceptance tests with the following criteria:

  1. Implemented using TestCafe and the Page Object Model design pattern, similar to BowFolios.

  2. Providing “availability” assurance. Your acceptance tests should ensure, at a minimum, that all pages in your application can be retrieved and that all forms in your application function correctly for at least one legal set of inputs.

  3. Your final project implements continuous integration using GitHub Actions, such that all commits into the master branch trigger a build of the system and the running of ESLint checks as well as your acceptance tests. Again, you can use BowFolios as a guide.

  4. Your github.io site should display a “badge” allowing readers to know the CI status of your project.

Hints

Installing the testcafe library

If your final project does not have TestCafe installed (i.e. it is not present in the devDependencies section of your package.json), you can install it by going to your app/ directory and running:

$ meteor npm install --save-dev testcafe

Providing the testcafe and testcafe-development scripts

If the package.json in your final project does not define the testcafe and testcafe-development scripts, you can find them in the meteor-application-template-react package.json.

Providing the GitHub Action workflow definition

If your final project does not contain a .github/workflows directory with a ci.yml file, you should copy the meteor-application-template-react workflows directory with its ci.yml file.

Providing a badge on your CI status in your documentation

The meteor-application-template-react readme.md page contains a badge with the status of its GitHub Action to build and test the system. Here it is:

ci-badge

You must provide a badge in your final project’s github.io site that indicates your final project’s build status. To do this:

First, edit the first line of your final project’s ci.yml file to rename the workflow to your final project’s name.

Second, copy the following code into your github.io site:

![ci-badge](https://github.com/ics-software-engineering/meteor-application-template-react/workflows/ci-meteor-application-template-react/badge.svg)

Third, edit this line of code:

Now this badge should display the most recent results of your final project’s build.

Submission Instructions

TestCafe tests and continuous integration should be implemented by the final milestone of your final project.