Challenge Overview
Project Overview
The Hercules PCDVR project allows users to upload their media to the Hercules cloud servers, including photos, videos, and music, along with other files. We already have working iOS and Android apps that work with the client services. This test suite competition will generate mocha unit tests to validate the backend service Javascript library.
This challenge will implement the unit tests for the JavaScript services module, covering all testing scenarios generated from "Hercules PCDVR HTML App - JavaScript Services Testing Scenarios Challenge".
Objective
The goal of this challenge is to implement unit tests for the JavaScript services module, covering all provided testing scenarios, which include functional tests, performance tests and browser compatibility tests.
Select test cases must be automated - see below for the test cases not in scope
Scope
To ensure submission, we have lowered the scope a bit. These functional test cases are NOT in scope:
- All 401 errors for expired token, token not set, and invalid OpenToken format
- All missing albumGuid and fileGuid cases
- Individual select cases for specific properties - for now, just test without giving specific select values
Unit Test Code Organization
Each test scenario must be in its own JavaScript file, and the JavaScript file should be named after the test scenario number and short description, e.g. "test01_GetMyAlbums.js".
There should be a wrapper JavaScript file (test.js) that aggregates all test scenarios.
Setup, Tear down, and sample files
To test uploading properly, make sure to provide sample files (at least 1 photo and 1 video) that can be used to validate uploads. Your teardown scripts should clean up any created albums or files, leaving no files behind in the API after the tests complete.
JavaScript Testing Framework
mocha will be used as the testing framework.
Deliverables
- Unit Tests
- A document that provides step by step instructions to run tests and check test results.
Technology overview
- JavaScript
- HTTP
- REST
- HTML5
- AJAX
- reqwest 1.1.2
- loglevel 1.1.0
- mocha 1.21.4
Existing Documents
- JavaScript Services Assembly Code
- Testing Scenarios and Test Plan documents
- Client's REST API Documentation
Final Submission Guidelines
Please see above