Improve docs and fix some mistakes on the selenium tests
This commit is contained in:
parent
c8f6d9ee86
commit
99930e1fef
|
|
@ -15,11 +15,9 @@ For instance, all OAuth2 related tests are under `test/oauth`. And under this fo
|
|||
we have another subfolder, `tests/oauth/with-uaa` to group all the tests cases which run against UAA as OAuth2 server.
|
||||
|
||||
At the moment, there are no smart around discovering all the tests under subfolders. That will come later.
|
||||
For now, the command `make run-tests` runs just the test cases under `oauth/with-uaa`. But first, the script `setup.sh` is
|
||||
invoked which launches a container running RabbitMQ configured with UAA, and another container running UAA configured with a number of users, permissions, and clients.
|
||||
For now, the command `make run-tests` explicitly runs the test cases under `oauth/with-uaa`.
|
||||
|
||||
|
||||
# Run single test
|
||||
# Get environment ready before running any tests
|
||||
|
||||
Before running a test we need to set up its environment by running the command below. It will
|
||||
launch RabbitMQ and UAA as a docker containers, and set up UAA with the right users, clients and scopes.
|
||||
|
|
@ -27,27 +25,12 @@ launch RabbitMQ and UAA as a docker containers, and set up UAA with the right us
|
|||
test/oauth/with-uaa/setup.sh
|
||||
```
|
||||
|
||||
**IMPORTANT**: When we combine browser running the local machine and UAA and RabbitMQ is docker it is not
|
||||
possible to refer to localhost anymore. Hence we use `local-rabbitmq` and `local-uaa` instead. And we need
|
||||
this line into our /etc/hosts:
|
||||
**IMPORTANT**: When we run UAA and RabbitMQ in docker and the browser in our local machine, we have to use
|
||||
the hostnames aliases `local-rabbitmq` and `local-uaa` which must be declared in our /etc/hosts file.
|
||||
```
|
||||
127.0.0.1 local-uaa local-rabbitmq
|
||||
```
|
||||
|
||||
And now we can run the test:
|
||||
```bash
|
||||
RUN_LOCAL=TRUE ./node_modules/.bin/mocha --timeout 20000 test/oauth/with-uaa/happy-login.js
|
||||
```
|
||||
|
||||
## Run RabbitMQ from source
|
||||
|
||||
If we prefer, we can run RabbitMQ from source. We just kill+rm the `local-rabbitmq` container and launch
|
||||
RabbitMQ as follows:
|
||||
```bash
|
||||
gmake run-broker PLUGINS="rabbitmq_management rabbitmq_auth_backend_oauth2" RABBITMQ_CONFIG_FILE=deps/rabbitmq_management/selenium/test/oauth/with-uaa/rabbitmq.config
|
||||
```
|
||||
> Run the command from the root of rabbitmq-server checked out folder
|
||||
|
||||
|
||||
# Run all tests (WIP)
|
||||
|
||||
|
|
@ -57,3 +40,31 @@ Chrome browser. This way we can see all the interactions driven by the tests on
|
|||
should anything failed, we can see where it failed. To use this mode, we run the tests with the command `RUN_LOCAL=TRUE make run-tests`
|
||||
- **Continuous integration way** - We run the tests against a standalone chrome browser which runs in silent mode (no UI) in
|
||||
a docker container. To launch the standalone chrome browser we run `make run-chrome` followed by `make run-tests` to run the tests.
|
||||
|
||||
Both methods run the tests from a docker container using a docker image that we have to build first by running the following command:
|
||||
```
|
||||
make init-tests
|
||||
```
|
||||
|
||||
In summary, if we want to run all tests against our local browser, we have to run these commands:
|
||||
```
|
||||
test/oauth/with-uaa/setup.sh
|
||||
make init-tests
|
||||
RUN_LOCAL=TRUE make run-tests
|
||||
|
||||
```
|
||||
|
||||
# Run single test
|
||||
|
||||
If we want to run a single tests rather than all tests under `oauth/with-uaa`, we run a command similar to this one:
|
||||
```bash
|
||||
RUN_LOCAL=TRUE ./node_modules/.bin/mocha --timeout 20000 test/oauth/with-uaa/happy-login.js
|
||||
```
|
||||
|
||||
## Run RabbitMQ from source
|
||||
|
||||
If we prefer, we can run RabbitMQ from source rather from a docker container, we launch it as follows:
|
||||
```bash
|
||||
gmake run-broker PLUGINS="rabbitmq_management rabbitmq_auth_backend_oauth2" RABBITMQ_CONFIG_FILE=deps/rabbitmq_management/selenium/test/oauth/with-uaa/rabbitmq.config
|
||||
```
|
||||
> Run the command from the root of rabbitmq-server checked out folder
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
{oauth_enable, true},
|
||||
{oauth_client_id, "rabbit_client_code"},
|
||||
{oauth_client_secret, "rabbit_client_code"},
|
||||
{oauth_provider_url, "http://localhost:8080/uaa"}
|
||||
{oauth_provider_url, "http://local-uaa:8080/uaa"}
|
||||
]},
|
||||
{rabbitmq_auth_backend_oauth2, [
|
||||
{resource_server_id, <<"rabbitmq">>},
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ var BasePage = require('./BasePage')
|
|||
const LOGIN_BUTTON = By.css('div#outer div#login div#login-status button#loginWindow');
|
||||
const WARNING = By.css('p.warning')
|
||||
|
||||
module.exports = class SSOLoginPage extends BasePage {
|
||||
module.exports = class SSOHomePage extends BasePage {
|
||||
|
||||
async isLoaded () {
|
||||
return this.waitForDisplayed(LOGIN_BUTTON)
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@ const FORM = By.css('form');
|
|||
const USERNAME = By.css('input[name="username"]')
|
||||
const PASSWORD = By.css('input[name="password"]')
|
||||
|
||||
module.exports = class UAAHomePage extends BasePage {
|
||||
module.exports = class UAALoginPage extends BasePage {
|
||||
|
||||
async isLoaded () {
|
||||
return this.waitForDisplayed(FORM)
|
||||
return this.waitForDisplayed(FORM)
|
||||
}
|
||||
async login(username, password) {
|
||||
await this.isLoaded();
|
||||
|
|
|
|||
Loading…
Reference in New Issue