Async testing framework
TODO:
- Core API
- User API
- Reorganise types into separate files
- Standardise type name order - i.e. WhatItIs_WhatItsFor (validate it will do a better job)
- Move description outside of State?
- Create timeout and abort extensions to Error
- Use new Error types
- Extend context to include user options
- Replace note implementation with standard stepCallback
- Move note reporting to avoid incorrect timeouts
- Trial notes with data that has a .then value
- Throw exception for invalid data? (i.e., not JSON)
- Add context to custom errors
- Add timeouts for notes
- Remove description from Event
- Test note timeouts
- Test it timeouts
- Test hook timeouts
- Validate ErrorTimeout context
- Add tests for abort api
- Move before/after blocks to the appropriate location? (yes they are)
- Fix constructor and add 'start' method
- Add tests for using await vs no await
- Validate ErrorAbort context
- Validate ErrorNotJson context
- Filter keys in UserOptions/Context to only valid options (hide internal workings)
- Rename variables to match new type names
- Reorder methods
- Freeze context (aside from .data)
- Finish test cases for remaining user API
- Test and correct nesting things in hooks/notes (i.e. make sure they chain off of the correct state... what /is/ the correct state?)
- Create bin scripts
- Move exception out of Event and into Context? - may be useful for children? will cause circular dependency since exceptions contain context
- Add .only semantics - should filter just
it
blocks. Check what mocha does for mixing describe and it blocks - Add tag API
- Add documentation
- Release advance-promise library
- Release this library
- Determine how to handle standard output/error output capture
- Commandline or Configuration filter (command line overrides configuration)
- Filter only filters it blocks
- Specify reporter as
- A named standard reporter
- A script which exports a Reporter as a Default which inherits from the reporter base?
- Specify root scripts which are run in the global context rather than their own individual script block
- Specify scripts which are each run within their own script block
- Script name is given relative to the configuration file dirname, or the cwd