- Everything (within reason) must have BDD-style tests.
- Test driving (TDD) is very strongly encouraged.
- Follow all existing patterns and conventions in the codebase.
- Before issuing a pull-request, please rebase your branch against master. If you are okay with the maintainer rebasing your pull request, please say so.
- After issuing your pull request, check Travis CI to make sure that all tests still pass.
- Clone the repository.
- Follow the instructions on agouti.org to install Ginkgo, Gomega, PhantomJS, ChromeDriver, and Selenium.
- Run all of the tests using:
ginkgo -r . - Start developing!
These are largely context-dependent, but in general:
Name- Methods that do not have a corresponding getter/setter should not start with "Get", "Is", or "Set".GetName- Non-boolean methods that get data and have a correspondingSetNamemethod should start with "Get".IsName- Boolean methods that get data and have a correspondingSetNamemethod should start with "Is".SetName- Methods that set data and have a correspondingGetNamemethod should start with "Set".ReadName- Methods that exhaust and return data should start with "Read".EnterName- Methods that enter data without replacing it should start with "Enter".
All API method names should be as close to their endpoint names as possible.
GetNamefor all GET requests returning a non-booleanIsNamefor all GET requests returning a booleanSetNamefor POST requests that change the browser stateNewNamesfor POST requests that return and exhaust some browser state (ex. logs)Namefor POST requests that perform some action or retrieve dataGetNameElementfor all POST requests returning an element