John Cowen b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
..
app b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
config b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
lib b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
public 0b4a879203 ui: serve /robots.txt when UI is enabled. (#5089) 11 months ago
tests b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
.dev.eslintrc.js e5eeb0aa7c UI V2 (#4086) 1 year ago
.editorconfig e5eeb0aa7c UI V2 (#4086) 1 year ago
.ember-cli df8506e200 Move testing doubles to use data embedded in the HTML vs HTTP/fetch 1 year ago
.eslintignore b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
.eslintrc.js b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
.gitignore b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
.nvmrc e5eeb0aa7c UI V2 (#4086) 1 year ago
.prettierrc e5eeb0aa7c UI V2 (#4086) 1 year ago
.template-lintrc.js b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
.watchmanconfig e5eeb0aa7c UI V2 (#4086) 1 year ago
GNUmakefile b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
README.md b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
_redirects d1b7f92e5e ui: Netlify previews (#6419) 2 months ago
ember-cli-build.js b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
package.json b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
testem.js b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago
yarn.lock b3b32dc0f6 ui: UI Release Merge (ui-staging merge) (#6527) 1 month ago

README.md

consul-ui

Prerequisites

You will need the following things properly installed on your computer.

Installation

  • git clone https://github.com/hashicorp/consul.git this repository
  • cd ui-v2
  • yarn install

All tooling scripts below primarily use make which in turn call node package scripts.

Running / Development

The source code comes with a small server that runs enough of the consul API as a set of mocks/fixtures to be able to run the UI without having to run consul.

  • make start-api or yarn start:api (this starts a Consul API double running on http://localhost:3000)
  • make start or yarn start to start the ember app that connects to the above API double
  • Visit your app at http://localhost:4200.

To enable ACLs using the mock API, use Web Inspector to set a cookie as follows:

CONSUL_ACLS_ENABLE=1

This will enable the ACLs login page, to which you can login with any ACL token/secret.

You can also use a number of other cookie key/values to set various things whilst developing the UI, such as (but not limited to):

CONSUL_SERVICE_COUNT=1000
CONSUL_NODE_CODE=1000
// etc etc

See ./node_modules/@hashicorp/consul-api-double for more details.

Code Generators

Make use of the many generators for code, try ember help generate for more details

Running Tests

Please note: You do not need to run make start-api/yarn run start:api to run the tests, but the same mock consul API is used.

  • make test or yarn run test
  • make test-view or yarn run test:view to view the tests running in Chrome

Linting

make lint currently runs linting on the majority of js files and hbs files (using ember-template-lint).

See .eslintrc.js and .eslintignore for specific configuration.

Building

  • make build builds the UI for production usage (env=production)
  • make build-ci builds the UI for CI/test usage (env=test)

Static files are built into ./dist

Running Tests in Parallel

Alternatively, ember-exam can be used to split the tests across multiple browser instances for faster results. Most options are the same as ember test. To see a full list of options, run ember exam --help.

Note: The EMBER_EXAM_PARALLEL environment variable must be set to override the default parallel value of 1 browser instance in testem.js.

To quickly run the tests across 4 parallel browser instances:

make test-parallel

To run manually:

$ EMBER_EXAM_PARALLEL=true ./node_modules/.bin/ember exam --split <num> --parallel

More ways to split tests can be found in the ember-exam README.md.