Fixed some bugs in subscription process

Added timezone selector to campaign scheduling
Fixed problems with pausing campaign.
This commit is contained in:
Tomas Bures 2019-07-10 02:06:56 +04:00
parent 4113cb8476
commit e3a5a3c4eb
23 changed files with 218 additions and 99 deletions

View file

@ -1,10 +1,11 @@
'use strict';
const config = require('server/test/e2e/lib/config');
const config = require('config');
module.exports = {
app: config,
baseUrl: 'http://localhost:' + config.www.publicPort,
baseTrustedUrl: 'http://localhost:' + config.www.trustedPort,
basePublicUrl: 'http://localhost:' + config.www.publicPort,
mailUrl: 'http://localhost:' + config.testServer.mailboxServerPort,
users: {
admin: {

View file

@ -5,17 +5,13 @@ const log = require('npmlog');
const path = require('path');
const fs = require('fs');
if (process.env.NODE_ENV !== 'test' || !fs.existsSync(path.join(__dirname, '..', '..', '..', 'config', 'test.toml'))) {
log.error('e2e', 'This script only runs in test and config/test.toml (i.e. a dedicated test database) is present');
if (process.env.NODE_ENV !== 'test' || !fs.existsSync(path.join(__dirname, '..', '..', '..', 'config', 'test.yaml'))) {
log.error('e2e', 'This script only runs in test and config/test.yaml (i.e. a dedicated test database) is present');
process.exit(1);
}
if (config.app.testServer.enabled !== true) {
log.error('e2e', 'This script only runs if the testServer is enabled. Check config/test.toml');
log.error('e2e', 'This script only runs if the testServer is enabled. Check config/test.yaml');
process.exit(1);
}
if (config.app.www.port !== 3000) {
log.error('e2e', 'This script requires Mailtrain to be running on port 3000. Check config/test.toml');
process.exit(1);
}

View file

@ -8,7 +8,7 @@ const driver = require('./mocha-e2e').driver;
const url = require('url');
const UrlPattern = require('url-pattern');
const waitTimeout = 10000;
const waitTimeout = 20000;
module.exports = (...extras) => Object.assign({
elements: {},
@ -21,7 +21,8 @@ module.exports = (...extras) => Object.assign({
const elem = await driver.findElement(By.css(this.elements[key]));
const linkUrl = await elem.getAttribute('href');
const linkPath = url.parse(linkUrl).path;
const parsedUrl = url.parse(linkUrl);
const linkPath = parsedUrl.pathname;
const urlPattern = new UrlPattern(this.links[key]);

View file

@ -23,7 +23,7 @@ module.exports = (...extras) => page({
if (parsedUrl.host) {
absolutePath = path;
} else {
absolutePath = config.baseUrl + path;
absolutePath = this.baseUrl + path;
}
await driver.navigate().to(absolutePath);
@ -37,8 +37,8 @@ module.exports = (...extras) => page({
const currentUrl = url.parse(await driver.getCurrentUrl());
const urlPattern = new UrlPattern(desiredUrl);
const params = urlPattern.match(currentUrl.pathname);
if (!params || config.baseUrl !== `${currentUrl.protocol}//${currentUrl.host}`) {
throw new Error(`Unexpected URL. Expecting ${config.baseUrl}${this.url} got ${currentUrl.protocol}//${currentUrl.host}/${currentUrl.pathname}`);
if (!params || this.baseUrl !== `${currentUrl.protocol}//${currentUrl.host}`) {
throw new Error(`Unexpected URL. Expecting ${this.baseUrl}${this.url} got ${currentUrl.protocol}//${currentUrl.host}/${currentUrl.pathname}`);
}
this.params = params;