- 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 correspondingSetName
method should start with "Get".IsName
- Boolean methods that get data and have a correspondingSetName
method should start with "Is".SetName
- Methods that set data and have a correspondingGetName
method 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.
GetName
for all GET requests returning a non-booleanIsName
for all GET requests returning a booleanSetName
for POST requests that change the browser stateNewNames
for POST requests that return and exhaust some browser state (ex. logs)Name
for POST requests that perform some action or retrieve dataGetNameElement
for all POST requests returning an element