diff --git a/client/angular.json b/client/angular.json index 2cf2ecd62..bd3c7216e 100644 --- a/client/angular.json +++ b/client/angular.json @@ -133,6 +133,11 @@ "options": { "protractorConfig": "e2e/protractor.conf.js", "devServerTarget": "PeerTube:serve:e2e" + }, + "configurations": { + "local": { + "protractorConfig": "e2e/local-protractor.conf.js" + } } }, "lint": { diff --git a/client/e2e/local-protractor.conf.js b/client/e2e/local-protractor.conf.js new file mode 100644 index 000000000..53edf26f2 --- /dev/null +++ b/client/e2e/local-protractor.conf.js @@ -0,0 +1,37 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const {SpecReporter} = require('jasmine-spec-reporter') + +exports.config = { + allScriptsTimeout: 25000, + specs: ['./src/**/*.e2e-spec.ts'], + + seleniumAddress: 'http://localhost:4444/wd/hub', + + capabilities: { + 'browserName': 'firefox', + 'moz:firefoxOptions': { + 'args': ["-headless"], + "log": { + "level": "info" // default is "info" + } + } + }, + + // maxSessions: 1, + baseUrl: 'http://localhost:3333/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 45000, + print: function() {} + }, + + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.e2e.json') + }) + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })) + } +} diff --git a/package.json b/package.json index c091aeab7..06434f89d 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "typings": "*.d.ts", "scripts": { "e2e": "scripty", + "e2e:local": "scripty", "build": "SCRIPTY_PARALLEL=true scripty", "build:server": "scripty", "build:client": "scripty", diff --git a/scripts/e2e.sh b/scripts/e2e/index.sh similarity index 99% rename from scripts/e2e.sh rename to scripts/e2e/index.sh index 1e31cd57c..cf2e04356 100755 --- a/scripts/e2e.sh +++ b/scripts/e2e/index.sh @@ -13,4 +13,3 @@ npm run clean:server:test npm run concurrently -- -k -s first \ "cd client && npm run ng -- e2e --port 3333" \ "NODE_ENV=test NODE_APP_INSTANCE=1 NODE_CONFIG='{ \"log\": { \"level\": \"warning\" } }' npm start" - diff --git a/scripts/e2e/local.sh b/scripts/e2e/local.sh new file mode 100755 index 000000000..65ec653dc --- /dev/null +++ b/scripts/e2e/local.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +set -eu + +npm run clean:server:test + +( + cd client + npm run webdriver-manager update + npm run webpack -- --config webpack/webpack.video-embed.js --mode development +) + +npm run concurrently -- -k -s first \ + "cd client && npm run webdriver-manager start" \ + "cd client && npm run ng -- e2e --port 3333 -c local" \ + "NODE_ENV=test NODE_APP_INSTANCE=1 NODE_CONFIG='{ \"log\": { \"level\": \"warning\" } }' npm start"