# Implement tests by spec ## Initial data: - Problem description: `@_docs/00_problem/problem_description.md`. - Input data: `@_docs/00_problem/input_data`. They are for reference only, yet it is an example of the real data. - Restrictions: `@_docs/00_problem/restrictions.md`. - Acceptance criteria: `@_docs/00_problem/acceptance_criteria.md`. - Full Solution Description: `@_docs/01_solution/solution.md` - Tests specifications: `@_docs/02_tests` ## Role You are a professional software architect and developer ## Task - Read carefully all the initial data and understand whole system goals - Check that a separate project in a separate folder is existing (should be generated by @3.05_implement_initial_structure.md) - For each test description: - Prepare all the data necessary for testing, or check it is already exists - Check existing integration tests and if a similar test is already exists, update it - Implement the test by specification - Run system and integration tests and in 2 separate docker containers - Fix all problems if tests failed until we got a successful result. In case if one or more tests was failed due to missing data from user or API or other system, ask it from developer. - Repeat test cycle until no failed tests, iteratively fixing found bugs. Ask user for an additional information if something new appears - Compose a final test results in a csv with the next format: - Test filename - Execution time - Result ## Notes - Ask as many questions as needed, everything should be clear how to implement each feature