mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
(core) updates from grist-core
This commit is contained in:
commit
f079d4b340
@ -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: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: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:docker": "./test/test_under_docker.sh",
|
||||
"test:python": "sandbox_venv3/bin/python sandbox/grist/runtests.py ${GREP_TESTS:+discover -p \"test*${GREP_TESTS}*.py\"}",
|
||||
|
@ -19,11 +19,122 @@
|
||||
"Add Default Rule": "Přidej Základní Pravidlo",
|
||||
"Checking...": "Kontroluji…",
|
||||
"Permissions": "Povolení",
|
||||
"Permission to view Access Rules": "Povolení na zobrazení Přistupových Pravidel"
|
||||
"Permission to view Access Rules": "Povolení na zobrazení Přistupových Pravidel",
|
||||
"Permission to access the document in full when needed": "Povolení plného přístupu k dokumentu pokud je to potřeba",
|
||||
"Reset": "Resetuj",
|
||||
"Remove {{- tableId }} rules": "Vymaž pravidla týkající se {{- tableId }}",
|
||||
"Remove {{- name }} user attribute": "Odstraň uživatelský atribut - {{- name }}",
|
||||
"Saved": "Uloženo",
|
||||
"Remove column {{- colId }} from {{- tableId }} rules": "Vymaž sloupec {{- colId }} z {{- tableId }} pravidel",
|
||||
"Type a message...": "Napiš zprávu…",
|
||||
"View As": "Zobraz Jako",
|
||||
"User Attributes": "Uživatelské Atributy",
|
||||
"When adding table rules, automatically add a rule to grant OWNER full access.": "Když přidáváš nové tabulkové pravidla, automaticky přidej pravidlo - uděl MAJITELI plné práva.",
|
||||
"Permission to edit document structure": "Povolení k editaci struktury dokumentu",
|
||||
"Seed rules": "Seed pravidla",
|
||||
"Save": "Ulož",
|
||||
"Rules for table ": "Pravidla pro tabulku ",
|
||||
"Special Rules": "Speciální Pravidla"
|
||||
},
|
||||
"ACUserManager": {
|
||||
"Invite new member": "Pozvi nového uživatele",
|
||||
"We'll email an invite to {{email}}": "Zašleme pozvánku emailem na {{email}}",
|
||||
"Enter email address": "Napiš e-mailovou adresu"
|
||||
},
|
||||
"ApiKey": {
|
||||
"Remove API Key": "Odeber API klíč",
|
||||
"Click to show": "Klikni pro zobrazení",
|
||||
"Create": "Vytvoř",
|
||||
"Remove": "Odeber",
|
||||
"By generating an API key, you will be able to make API calls for your own account.": "Tím že vygeneruješ API klíč, budeš schopen používat \"API calls\" pro svůj vlastní účet."
|
||||
},
|
||||
"AccountPage": {
|
||||
"Theme": "Motiv",
|
||||
"API": "API",
|
||||
"Change Password": "Změň heslo",
|
||||
"Email": "E-mail",
|
||||
"Password & Security": "Heslo a Zabezpečení",
|
||||
"Account settings": "Uživatelské nastavení",
|
||||
"Two-factor authentication": "Dvoufázové ověřování",
|
||||
"Two-factor authentication is an extra layer of security for your Grist account designed to ensure that you're the only person who can access your account, even if someone knows your password.": "Dvoufázové ověřování je extra vrstva zabezpečení pro tvůj Grist účet. Slouží k tomu aby jsi byl opravdu jediný, kdo se do tvého účtu dostane i-kdyby někdo jiný znal tvé heslo.",
|
||||
"Language": "Jazyk",
|
||||
"Edit": "Uprav",
|
||||
"Names only allow letters, numbers and certain special characters": "Jména povolují pouze písmena, čísla a některé speciální znaky",
|
||||
"Login Method": "Přihlašovací metody",
|
||||
"API Key": "API klíč",
|
||||
"Name": "Jméno",
|
||||
"Save": "Ulož"
|
||||
},
|
||||
"AccountWidget": {
|
||||
"Add Account": "Přidej Účet",
|
||||
"Switch Accounts": "Přepni Účty",
|
||||
"Activation": "Aktivace",
|
||||
"Toggle Mobile Mode": "Přepni Mobilní režim",
|
||||
"Support Grist": "Podpoř Grist",
|
||||
"Access Details": "Přístupové detaily",
|
||||
"Upgrade Plan": "Upgraduj svůj Plán",
|
||||
"Sign Out": "Odhlásit se",
|
||||
"Profile Settings": "Nastavení Profilu",
|
||||
"Sign in": "Přihlásit se",
|
||||
"Pricing": "Ceník",
|
||||
"Document Settings": "Nastavení Dokumentu",
|
||||
"Use This Template": "Použij tuto Šablonu",
|
||||
"Manage Team": "Spravuj tým",
|
||||
"Billing Account": "Fakturační účet",
|
||||
"Sign In": "Přihlaš se",
|
||||
"Accounts": "Účty",
|
||||
"Sign Up": "Odhlaš se"
|
||||
},
|
||||
"FieldConfig": {
|
||||
"Set formula": "nastav formuli",
|
||||
"Data Columns_other": "Data Sloupce",
|
||||
"DESCRIPTION": "POPIS",
|
||||
"Empty Columns_other": "Prázdné Sloupce",
|
||||
"Empty Columns_one": "Prázdný Sloupec",
|
||||
"Formula Columns_other": "Formula Sloupce",
|
||||
"Formula Columns_one": "Formula Sloupec",
|
||||
"Make into data column": "Změň na data sloupec",
|
||||
"Enter formula": "Zadej formuli",
|
||||
"Data Columns_one": "Data Sloupec",
|
||||
"Set trigger formula": "Nastav \"trigger\" formuli"
|
||||
},
|
||||
"ActionLog": {
|
||||
"Column {{colId}} was subsequently removed in action #{{action.actionNum}}": "Sloupec {{colId}} byl odstraněn po spuštění akce #{{action.actionNum}}",
|
||||
"Action Log failed to load": "Historii akcí se nepovedlo načíst",
|
||||
"This row was subsequently removed in action {{action.actionNum}}": "Tento řádek byl odstraněn po spuštění akce {{action.actionNum}}",
|
||||
"Table {{tableId}} was subsequently removed in action #{{actionNum}}": "Tabulka {{tableId}} byla odstraněna po spuštění akce #{{actionNum}}",
|
||||
"All tables": "Všechny tabulky"
|
||||
},
|
||||
"FieldMenus": {
|
||||
"Use separate settings": "Použij rozdílné nastavení",
|
||||
"Revert to common settings": "Převeď na standardní nastavení",
|
||||
"Using common settings": "Použito standardní nastavení",
|
||||
"Using separate settings": "Použito rozdílné nastavení",
|
||||
"Save as common settings": "Ulož jako standardní nastavení"
|
||||
},
|
||||
"FilterConfig": {
|
||||
"Add Column": "Přidej Sloupec"
|
||||
},
|
||||
"AppHeader": {
|
||||
"Personal Site": "Osobní stránka",
|
||||
"Home Page": "Domácí stránka",
|
||||
"Team Site": "Stránka Týmu",
|
||||
"Grist Templates": "Šablony Grist"
|
||||
},
|
||||
"ViewAsDropdown": {
|
||||
"View As": "Zobraz Jako",
|
||||
"Example Users": "\"Příkladoví\" Uživatelé",
|
||||
"Users from table": "Uživatelé z tabulky"
|
||||
},
|
||||
"App": {
|
||||
"Description": "Popis",
|
||||
"Memory Error": "Chyba paměti",
|
||||
"Key": "Klíč"
|
||||
},
|
||||
"FilterBar": {
|
||||
"SearchColumns": "Prohledej sloupce"
|
||||
},
|
||||
"AddNewButton": {
|
||||
"Add New": "Přidej Nový"
|
||||
}
|
||||
}
|
||||
|
@ -621,7 +621,8 @@
|
||||
"WIDGET TITLE": "WIDGET TITLE",
|
||||
"Widget": "Widget",
|
||||
"You do not have edit access to this document": "You do not have edit access to this document",
|
||||
"Add referenced columns": "Add referenced columns"
|
||||
"Add referenced columns": "Add referenced columns",
|
||||
"Reset form": "Reset form"
|
||||
},
|
||||
"RowContextMenu": {
|
||||
"Copy anchor link": "Copy anchor link",
|
||||
@ -1255,5 +1256,8 @@
|
||||
"Insert card": "Insert card",
|
||||
"Insert card above": "Insert card above",
|
||||
"Insert card below": "Insert card below"
|
||||
},
|
||||
"HiddenQuestionConfig": {
|
||||
"Hidden fields": "Hidden fields"
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import {HomeDBManager} from 'app/gen-server/lib/HomeDBManager';
|
||||
import {Permissions} from 'app/gen-server/lib/Permissions';
|
||||
import {assert} from 'chai';
|
||||
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 {Login1539031763952 as Login} from 'app/gen-server/migration/1539031763952-Login';
|
||||
@ -63,11 +64,19 @@ function assertMembersGroup(org: Organization, exists: boolean) {
|
||||
}
|
||||
|
||||
describe('migrations', function() {
|
||||
let oldEnv: EnvironmentSnapshot;
|
||||
|
||||
before(function() {
|
||||
oldEnv = new EnvironmentSnapshot();
|
||||
// This test is incompatible with TEST_CLEAN_DATABASE.
|
||||
delete process.env.TEST_CLEAN_DATABASE;
|
||||
setUpDB(this);
|
||||
});
|
||||
|
||||
after(function() {
|
||||
oldEnv.restore();
|
||||
});
|
||||
|
||||
beforeEach(async function() {
|
||||
await home.connect();
|
||||
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 * as testUtils from 'test/server/testUtils';
|
||||
import {waitForIt} from 'test/server/wait';
|
||||
import clone = require('lodash/clone');
|
||||
import defaultsDeep = require('lodash/defaultsDeep');
|
||||
import pick = require('lodash/pick');
|
||||
|
||||
@ -71,9 +70,11 @@ let userApi: UserAPIImpl;
|
||||
describe('DocApi', function () {
|
||||
this.timeout(30000);
|
||||
testUtils.setTmpLogLevel('error');
|
||||
const oldEnv = clone(process.env);
|
||||
let oldEnv: testUtils.EnvironmentSnapshot;
|
||||
|
||||
before(async function () {
|
||||
oldEnv = new testUtils.EnvironmentSnapshot();
|
||||
|
||||
// Clear redis test database if redis is in use.
|
||||
if (process.env.TEST_REDIS_URL) {
|
||||
const cli = createClient(process.env.TEST_REDIS_URL);
|
||||
@ -94,7 +95,7 @@ describe('DocApi', function () {
|
||||
});
|
||||
|
||||
after(() => {
|
||||
Object.assign(process.env, oldEnv);
|
||||
oldEnv.restore();
|
||||
});
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,7 @@
|
||||
import {prepareDatabase} from 'test/server/lib/helpers/PrepareDatabase';
|
||||
import {TestServer} from 'test/server/lib/helpers/TestServer';
|
||||
import {createTestDir, setTmpLogLevel} from 'test/server/testUtils';
|
||||
import * as testUtils from 'test/server/testUtils';
|
||||
import {waitForIt} from 'test/server/wait';
|
||||
import {assert} from 'chai';
|
||||
import fetch from 'node-fetch';
|
||||
@ -17,12 +18,18 @@ describe('UnhandledErrors', function() {
|
||||
setTmpLogLevel('warn');
|
||||
|
||||
let testDir: string;
|
||||
let oldEnv: testUtils.EnvironmentSnapshot;
|
||||
|
||||
before(async function() {
|
||||
oldEnv = new testUtils.EnvironmentSnapshot();
|
||||
testDir = await createTestDir('UnhandledErrors');
|
||||
await prepareDatabase(testDir);
|
||||
});
|
||||
|
||||
after(function() {
|
||||
oldEnv.restore();
|
||||
});
|
||||
|
||||
for (const errType of ['exception', 'rejection', 'error-event']) {
|
||||
it(`should clean up on unhandled ${errType}`, async function() {
|
||||
// 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 {TestServer} from 'test/server/lib/helpers/TestServer';
|
||||
import * as testUtils from 'test/server/testUtils';
|
||||
import clone = require('lodash/clone');
|
||||
|
||||
const chimpy = configForUser('Chimpy');
|
||||
|
||||
@ -39,12 +38,12 @@ async function cleanRedisDatabase() {
|
||||
}
|
||||
|
||||
function backupEnvironmentVariables() {
|
||||
let oldEnv: NodeJS.ProcessEnv;
|
||||
let oldEnv: testUtils.EnvironmentSnapshot;
|
||||
before(() => {
|
||||
oldEnv = clone(process.env);
|
||||
oldEnv = new testUtils.EnvironmentSnapshot();
|
||||
});
|
||||
after(() => {
|
||||
Object.assign(process.env, oldEnv);
|
||||
oldEnv.restore();
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user