mirror of https://github.com/trezor/trezor-wallet
Integration tests (#311)
* Add base test env
* Add eslint rules for cypress
* Add configs and scripts in package json
* Added docker file for bridge and emualator
* Bridge install progress
* Bridge install next step
* Add task for integration tests
* Fixed deps
* Added baseUrl
* Added baseUrl fix
* Added npx
* Added caching for cypress bin
* Added path to binary
* Install cypress
* Finalized dockerfile
* Fixed bridge lib path
* Fixed path for binary
* Adjust script again
* Run all the things properly
* Try to run the tests
* First POC test
* First POC test in gitlab
* Fixed flow
* Fixed gitlab test url, try docker service
* export artifacts
* Test only integration tests in CI
* Test only integration tests in CI 2
* Test only integration tests in CI 3
* Added tests for initialize device
* Try to add docker in only one step
* Turn on other integration steps
* Correct node version
* Ignore cache in flow
* Run bridge and emulator in debug link mode
* Fix param
* Try to run new config in CI
* init device in docker
* Remove docker image after run
* Remove amp
* Fix path
* Artifacts on fail
* Artifacts on fail with volume
* Artifacts on fail with volume 2
* Install mkdir
* Install mkdir again
* test
* test 2
* test 3
* test 4
* test 5
* test 6
* test 7
* test 8
* test 9
* test 10
* test 11
* test 12
* test 13
* test 14
* test 15
* test 16
* test 17
* Revert "test 17"
This reverts commit f3f6c0d690
.
* test 18
* test 19
* test 20
* test 21 try chrome
* test 22
* test 23
* test 24
* test 25
* test 25 try to install chrome again
* test 25 try to install chrome again
* Added missing deps
* Added debug
* Install chromium
* Install chromium 2
* turn on chromium
* turn off debug
* turn on debug
* fix folder
* turn off debug
* Fix init device
* Add header dashboard test
* Bring things back
* clean
* clean fix
* Build image in CI
* Added stage step
* Added docker image
* Added service
* Added tests to docker image
* Refactor a bit
* Correct registry image
* Build wallet again
* Add test for dashbaord content
* new node version, more tests
* Remove unused code
* typo
* Correct snapshots, moved deps to dev, beta disclaimer prop
pull/353/head
parent
02a976a759
commit
46fe6d00fc
@ -1,17 +1,50 @@
|
||||
FROM node:9.3
|
||||
FROM python:latest
|
||||
|
||||
ARG BUILD_TYPE=stable
|
||||
#
|
||||
# setup
|
||||
#
|
||||
RUN apt-get update
|
||||
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
|
||||
RUN apt-get install -y chromium libappindicator3-1 xdg-utils fonts-liberation nodejs wget dpkg git python python3 python3-pip xvfb libgtk2.0-0 libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2
|
||||
RUN npm install -g yarn
|
||||
|
||||
WORKDIR /trezor-wallet-app
|
||||
RUN ln -s /usr/bin/chromium /usr/local/bin/chromium-browser
|
||||
|
||||
COPY package.json /trezor-wallet-app
|
||||
COPY yarn.lock /trezor-wallet-app
|
||||
#
|
||||
# build emulator
|
||||
#
|
||||
RUN mkdir /trezor-emulator
|
||||
WORKDIR /trezor-emulator
|
||||
|
||||
RUN yarn install
|
||||
RUN git clone https://github.com/trezor/trezor-core
|
||||
WORKDIR /trezor-emulator/trezor-core
|
||||
RUN git submodule update --init --recursive
|
||||
|
||||
COPY . /trezor-wallet-app
|
||||
RUN apt-get install libusb-1.0-0
|
||||
RUN pip3 install scons trezor
|
||||
RUN make build_unix_noui
|
||||
|
||||
RUN yarn run build:${BUILD_TYPE}
|
||||
#
|
||||
# install bridge
|
||||
#
|
||||
RUN mkdir /trezor-bridge
|
||||
WORKDIR /trezor-bridge
|
||||
RUN wget https://wallet.trezor.io/data/bridge/2.0.25/trezor-bridge_2.0.25_amd64.deb
|
||||
RUN dpkg -x /trezor-bridge/trezor-bridge_2.0.25_amd64.deb /trezor-bridge/extracted
|
||||
|
||||
EXPOSE 8080
|
||||
CMD [ "yarn", "run", "prod-server" ]
|
||||
#
|
||||
# install trezor-wallet
|
||||
#
|
||||
RUN mkdir /trezor-wallet
|
||||
WORKDIR /trezor-wallet
|
||||
COPY package.json /trezor-wallet
|
||||
COPY yarn.lock /trezor-wallet
|
||||
RUN yarn
|
||||
COPY . /trezor-wallet
|
||||
RUN yarn run build:stable
|
||||
|
||||
#
|
||||
# run
|
||||
#
|
||||
ENTRYPOINT ["/trezor-wallet/test/scripts/run-all.sh"]
|
||||
EXPOSE 8080 21325
|
@ -0,0 +1,11 @@
|
||||
{
|
||||
"integrationFolder": "test/integration",
|
||||
"fixturesFolder": "test/fixtures",
|
||||
"pluginsFile": "test/plugins/index.js",
|
||||
"supportFile": "test/support/index.js",
|
||||
"defaultCommandTimeout": 10000,
|
||||
"screenshotsFolder": "test/screenshots",
|
||||
"video": false,
|
||||
"trashAssetsBeforeRuns": true,
|
||||
"chromeWebSecurity": false
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
describe('Dashboard page', () => {
|
||||
beforeEach(() => {
|
||||
cy.viewport(1366, 1800);
|
||||
cy.visit('/');
|
||||
});
|
||||
|
||||
it('navigation', () => {
|
||||
cy.getTestElement('Main__page__navigation')
|
||||
.should('be.visible')
|
||||
.matchImageSnapshot();
|
||||
});
|
||||
|
||||
it('content', () => {
|
||||
cy.getTestElement('Dashboard__page__content')
|
||||
.should('be.visible')
|
||||
.matchImageSnapshot();
|
||||
});
|
||||
|
||||
// Menu
|
||||
|
||||
it('device header', () => {
|
||||
cy.getTestElement('Main__page__device__header')
|
||||
.should('be.visible')
|
||||
.matchImageSnapshot();
|
||||
});
|
||||
});
|
@ -0,0 +1,7 @@
|
||||
const {
|
||||
addMatchImageSnapshotPlugin,
|
||||
} = require('cypress-image-snapshot/plugin');
|
||||
|
||||
module.exports = (on) => {
|
||||
addMatchImageSnapshotPlugin(on);
|
||||
};
|
@ -0,0 +1,6 @@
|
||||
import '@babel/polyfill';
|
||||
import { initSeedAllDevice } from 'trezor-bridge-communicator';
|
||||
|
||||
(async () => {
|
||||
await initSeedAllDevice();
|
||||
})();
|
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# go to root
|
||||
cd "$(dirname "$0")"
|
||||
cd ..
|
||||
|
||||
# run bridge
|
||||
cd /trezor-bridge && ./extracted/usr/bin/trezord -ed 21324:21325 -u=false &
|
||||
|
||||
# run emulator
|
||||
cd /trezor-emulator/trezor-core && PYOPT=0 ./emu.sh &
|
||||
|
||||
# run wallet
|
||||
cd /trezor-wallet && yarn run server:stable &
|
||||
|
||||
# init device
|
||||
npx babel-node /trezor-wallet/test/scripts/init-device.js &
|
||||
|
||||
# run tests
|
||||
yarn run test-integration:gitlab -c baseUrl="https://localhost:8080/#/"
|
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,5 @@
|
||||
import { addMatchImageSnapshotCommand } from 'cypress-image-snapshot/command';
|
||||
|
||||
addMatchImageSnapshotCommand();
|
||||
|
||||
Cypress.Commands.add('getTestElement', selector => cy.get(`[data-test="${selector}"]`));
|
@ -0,0 +1,5 @@
|
||||
import './commands';
|
||||
|
||||
beforeEach(() => {
|
||||
window.localStorage.setItem('/betaModalPrivacy', true);
|
||||
});
|
Loading…
Reference in new issue