8c8782ff8f | ||
---|---|---|
.. | ||
app | ||
grunttasks | ||
locale | ||
scripts | ||
server | ||
tests | ||
.eslintignore | ||
.eslintrc | ||
.gitattributes | ||
.htmllintrc | ||
.nsprc | ||
.prettierignore | ||
Gruntfile.js | ||
README.md | ||
backstage.yaml | ||
package.json | ||
pm2.config.js | ||
postcss.config.js | ||
tailwind.config.js | ||
tsconfig.json | ||
webpack.config.js |
README.md
Firefox Accounts Content Server
Static server that hosts Firefox Account sign up, sign in, email verification, etc. flows.
Quick Start
Clone the repository, make sure you have required prerequisites installed.
Run yarn install
and yarn start-remote
.
This will start a local fxa-content-server on http://localhost:3030 that works with remote Firefox Accounts servers.
If you want to install all Firefox Accounts servers locally follow the instructions on: fxa-local-dev to get a full development setup running. Please note that fxa-local-dev is the preferred way of contributing to Firefox Accounts.
Development Notes
Changes to stylesheets, scripts and templates
Any changes made to the css resources, scripts or the template files will automatically be reflected on page refresh.
Testing
Functional Tests
📖 A much more thorough breakdown of Content Server functional tests can be found in our Ecosystem Platform docs.
JDK or JRE is required to run functional tests.
This package uses Selenium to perform functional tests. By default npm test
will run all functional tests under tests/
. You can run specific tests with the following commands:
# Grep for "change password, sign in with new password"
yarn test -- --grep="change password, sign in with new password"
If you need to run tests for a particular suite, you can like so:
node tests/intern.js --suites=server --grep='check resources entrained by /signin in all locales'
Changing the Auth Server
To change the default Auth Server edit server/config/*.json
on your deployed instance.
{
"fxaccount_url": "http://your.auth.server.here.org"
}
Note that testing with Selenium via Docker does not work at present, so all testing must be carried out via your normal operating system's npm & Java tooling.
Using xvfb
On headless systems that can't spawn Firefox for use with Selenium, xvfb-run
may be used for a virtual framebuffer for Firefox
to run with. After installing xvfb-run
the functional tests can be run with:
xvfb-run -s "-screen 0 1920x1200x16" yarn test-functional
Unit Tests
If you'd like to run only unit tests you can do so in your browser by navigating to http://localhost:3030/tests/index.html. You can also grep for specific tests by specifying the grep
URL parameter (e.g. http://localhost:3030/tests/index.html?grep=fxa-client).
Grunt Commands
Grunt is used to run common tasks to build, test, and run local servers.
TASK | DESCRIPTION |
---|---|
grunt build |
build production resources. See task source for more documentation |
grunt clean |
remove any built production resources. |
grunt lint |
run ESLint, Sass-lint, amdcheck and JSONLint on client side and testing JavaScript. |
grunt server |
run a local server running on port 3030 with development resources. |
grunt server:dist |
run a local server running on port 3030 with production resources. Production resources will be built as part of the task. |
grunt test |
run local Intern tests. |
grunt version |
stamp a new minor version. Updates the version number and creates a new CHANGELOG.md. |
grunt version:patch |
stamp a new patch version. Updates the version number and creates a new CHANGELOG.md. |
Servers
- latest development - https://latest.dev.lcip.org/
- stable - https://stable.dev.lcip.org/
- stage - https://accounts.stage.mozaws.net/
- production - https://accounts.firefox.com/
License
MPL 2.0