mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
set TEST_CLEAN_DATABASE when running server tests (#806)
After adding a batch of new server tests, some interactions between tests have shown up via a shared database. This sets an existing flag for dealing with this problem, that is used during browser tests but hadn't been needed before for server tests.
This commit is contained in:
parent
a5544b9b01
commit
e0d44eff1f
@ -17,7 +17,7 @@
|
|||||||
"test:nbrowser": "TEST_SUITE=nbrowser TEST_SUITE_FOR_TIMINGS=nbrowser TIMINGS_FILE=test/timings/nbrowser.txt GRIST_SESSION_COOKIE=grist_test_cookie GRIST_TEST_LOGIN=1 TEST_SUPPORT_API_KEY=api_key_for_support TEST_CLEAN_DATABASE=true LANGUAGE=en_US mocha ${DEBUG:+-b --no-exit} $([ -z $DEBUG ] && echo --forbid-only) -g \"${GREP_TESTS}\" --slow 8000 -R test/xunit-file '_build/test/nbrowser/**/*.js'",
|
"test:nbrowser": "TEST_SUITE=nbrowser TEST_SUITE_FOR_TIMINGS=nbrowser TIMINGS_FILE=test/timings/nbrowser.txt GRIST_SESSION_COOKIE=grist_test_cookie GRIST_TEST_LOGIN=1 TEST_SUPPORT_API_KEY=api_key_for_support TEST_CLEAN_DATABASE=true LANGUAGE=en_US mocha ${DEBUG:+-b --no-exit} $([ -z $DEBUG ] && echo --forbid-only) -g \"${GREP_TESTS}\" --slow 8000 -R test/xunit-file '_build/test/nbrowser/**/*.js'",
|
||||||
"test:client": "GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} '_build/test/client/**/*.js'",
|
"test:client": "GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} '_build/test/client/**/*.js'",
|
||||||
"test:common": "GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} '_build/test/common/**/*.js'",
|
"test:common": "GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} '_build/test/common/**/*.js'",
|
||||||
"test:server": "TEST_SUITE=server TEST_SUITE_FOR_TIMINGS=server TIMINGS_FILE=test/timings/server.txt GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} -g \"${GREP_TESTS}\" -R test/xunit-file '_build/test/server/**/*.js' '_build/test/gen-server/**/*.js'",
|
"test:server": "TEST_CLEAN_DATABASE=true TEST_SUITE=server TEST_SUITE_FOR_TIMINGS=server TIMINGS_FILE=test/timings/server.txt GRIST_SESSION_COOKIE=grist_test_cookie mocha ${DEBUG:+'-b'} -g \"${GREP_TESTS}\" -R test/xunit-file '_build/test/server/**/*.js' '_build/test/gen-server/**/*.js'",
|
||||||
"test:smoke": "mocha _build/test/nbrowser/Smoke.js",
|
"test:smoke": "mocha _build/test/nbrowser/Smoke.js",
|
||||||
"test:docker": "./test/test_under_docker.sh",
|
"test:docker": "./test/test_under_docker.sh",
|
||||||
"test:python": "sandbox_venv3/bin/python sandbox/grist/runtests.py ${GREP_TESTS:+discover -p \"test*${GREP_TESTS}*.py\"}",
|
"test:python": "sandbox_venv3/bin/python sandbox/grist/runtests.py ${GREP_TESTS:+discover -p \"test*${GREP_TESTS}*.py\"}",
|
||||||
|
@ -5,6 +5,7 @@ import {HomeDBManager} from 'app/gen-server/lib/HomeDBManager';
|
|||||||
import {Permissions} from 'app/gen-server/lib/Permissions';
|
import {Permissions} from 'app/gen-server/lib/Permissions';
|
||||||
import {assert} from 'chai';
|
import {assert} from 'chai';
|
||||||
import {addSeedData, createInitialDb, removeConnection, setUpDB} from 'test/gen-server/seed';
|
import {addSeedData, createInitialDb, removeConnection, setUpDB} from 'test/gen-server/seed';
|
||||||
|
import {EnvironmentSnapshot} from 'test/server/testUtils';
|
||||||
|
|
||||||
import {Initial1536634251710 as Initial} from 'app/gen-server/migration/1536634251710-Initial';
|
import {Initial1536634251710 as Initial} from 'app/gen-server/migration/1536634251710-Initial';
|
||||||
import {Login1539031763952 as Login} from 'app/gen-server/migration/1539031763952-Login';
|
import {Login1539031763952 as Login} from 'app/gen-server/migration/1539031763952-Login';
|
||||||
@ -63,11 +64,19 @@ function assertMembersGroup(org: Organization, exists: boolean) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
describe('migrations', function() {
|
describe('migrations', function() {
|
||||||
|
let oldEnv: EnvironmentSnapshot;
|
||||||
|
|
||||||
before(function() {
|
before(function() {
|
||||||
|
oldEnv = new EnvironmentSnapshot();
|
||||||
|
// This test is incompatible with TEST_CLEAN_DATABASE.
|
||||||
|
delete process.env.TEST_CLEAN_DATABASE;
|
||||||
setUpDB(this);
|
setUpDB(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
after(function() {
|
||||||
|
oldEnv.restore();
|
||||||
|
});
|
||||||
|
|
||||||
beforeEach(async function() {
|
beforeEach(async function() {
|
||||||
await home.connect();
|
await home.connect();
|
||||||
await createInitialDb(home.connection, false);
|
await createInitialDb(home.connection, false);
|
||||||
|
@ -37,7 +37,6 @@ import {signal} from 'test/server/lib/helpers/Signal';
|
|||||||
import {TestServer} from 'test/server/lib/helpers/TestServer';
|
import {TestServer} from 'test/server/lib/helpers/TestServer';
|
||||||
import * as testUtils from 'test/server/testUtils';
|
import * as testUtils from 'test/server/testUtils';
|
||||||
import {waitForIt} from 'test/server/wait';
|
import {waitForIt} from 'test/server/wait';
|
||||||
import clone = require('lodash/clone');
|
|
||||||
import defaultsDeep = require('lodash/defaultsDeep');
|
import defaultsDeep = require('lodash/defaultsDeep');
|
||||||
import pick = require('lodash/pick');
|
import pick = require('lodash/pick');
|
||||||
|
|
||||||
@ -71,9 +70,11 @@ let userApi: UserAPIImpl;
|
|||||||
describe('DocApi', function () {
|
describe('DocApi', function () {
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
testUtils.setTmpLogLevel('error');
|
testUtils.setTmpLogLevel('error');
|
||||||
const oldEnv = clone(process.env);
|
let oldEnv: testUtils.EnvironmentSnapshot;
|
||||||
|
|
||||||
before(async function () {
|
before(async function () {
|
||||||
|
oldEnv = new testUtils.EnvironmentSnapshot();
|
||||||
|
|
||||||
// Clear redis test database if redis is in use.
|
// Clear redis test database if redis is in use.
|
||||||
if (process.env.TEST_REDIS_URL) {
|
if (process.env.TEST_REDIS_URL) {
|
||||||
const cli = createClient(process.env.TEST_REDIS_URL);
|
const cli = createClient(process.env.TEST_REDIS_URL);
|
||||||
@ -94,7 +95,7 @@ describe('DocApi', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
after(() => {
|
after(() => {
|
||||||
Object.assign(process.env, oldEnv);
|
oldEnv.restore();
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import {prepareDatabase} from 'test/server/lib/helpers/PrepareDatabase';
|
import {prepareDatabase} from 'test/server/lib/helpers/PrepareDatabase';
|
||||||
import {TestServer} from 'test/server/lib/helpers/TestServer';
|
import {TestServer} from 'test/server/lib/helpers/TestServer';
|
||||||
import {createTestDir, setTmpLogLevel} from 'test/server/testUtils';
|
import {createTestDir, setTmpLogLevel} from 'test/server/testUtils';
|
||||||
|
import * as testUtils from 'test/server/testUtils';
|
||||||
import {waitForIt} from 'test/server/wait';
|
import {waitForIt} from 'test/server/wait';
|
||||||
import {assert} from 'chai';
|
import {assert} from 'chai';
|
||||||
import fetch from 'node-fetch';
|
import fetch from 'node-fetch';
|
||||||
@ -17,12 +18,18 @@ describe('UnhandledErrors', function() {
|
|||||||
setTmpLogLevel('warn');
|
setTmpLogLevel('warn');
|
||||||
|
|
||||||
let testDir: string;
|
let testDir: string;
|
||||||
|
let oldEnv: testUtils.EnvironmentSnapshot;
|
||||||
|
|
||||||
before(async function() {
|
before(async function() {
|
||||||
|
oldEnv = new testUtils.EnvironmentSnapshot();
|
||||||
testDir = await createTestDir('UnhandledErrors');
|
testDir = await createTestDir('UnhandledErrors');
|
||||||
await prepareDatabase(testDir);
|
await prepareDatabase(testDir);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
after(function() {
|
||||||
|
oldEnv.restore();
|
||||||
|
});
|
||||||
|
|
||||||
for (const errType of ['exception', 'rejection', 'error-event']) {
|
for (const errType of ['exception', 'rejection', 'error-event']) {
|
||||||
it(`should clean up on unhandled ${errType}`, async function() {
|
it(`should clean up on unhandled ${errType}`, async function() {
|
||||||
// Capture server log output, so that we can look to see how the server coped.
|
// Capture server log output, so that we can look to see how the server coped.
|
||||||
|
@ -14,7 +14,6 @@ import {signal} from 'test/server/lib/helpers/Signal';
|
|||||||
import {TestProxyServer} from 'test/server/lib/helpers/TestProxyServer';
|
import {TestProxyServer} from 'test/server/lib/helpers/TestProxyServer';
|
||||||
import {TestServer} from 'test/server/lib/helpers/TestServer';
|
import {TestServer} from 'test/server/lib/helpers/TestServer';
|
||||||
import * as testUtils from 'test/server/testUtils';
|
import * as testUtils from 'test/server/testUtils';
|
||||||
import clone = require('lodash/clone');
|
|
||||||
|
|
||||||
const chimpy = configForUser('Chimpy');
|
const chimpy = configForUser('Chimpy');
|
||||||
|
|
||||||
@ -39,12 +38,12 @@ async function cleanRedisDatabase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function backupEnvironmentVariables() {
|
function backupEnvironmentVariables() {
|
||||||
let oldEnv: NodeJS.ProcessEnv;
|
let oldEnv: testUtils.EnvironmentSnapshot;
|
||||||
before(() => {
|
before(() => {
|
||||||
oldEnv = clone(process.env);
|
oldEnv = new testUtils.EnvironmentSnapshot();
|
||||||
});
|
});
|
||||||
after(() => {
|
after(() => {
|
||||||
Object.assign(process.env, oldEnv);
|
oldEnv.restore();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user