diff options
Diffstat (limited to 'cypress')
-rw-r--r-- | cypress/dockerNode.ts | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/cypress/dockerNode.ts b/cypress/dockerNode.ts index 14ca7b936b1..2c8aa6c5109 100644 --- a/cypress/dockerNode.ts +++ b/cypress/dockerNode.ts @@ -41,10 +41,6 @@ export const startNextcloud = async function(branch: string = getCurrentGitBranc // https://github.com/apocas/dockerode/issues/357 docker.modem.followProgress(stream, onFinished) - /** - * - * @param err - */ function onFinished(err) { if (!err) { resolve(true) @@ -91,6 +87,7 @@ export const startNextcloud = async function(branch: string = getCurrentGitBranc }, Env: [ `BRANCH=${branch}`, + 'APCU=1', ], }) await container.start() @@ -129,9 +126,28 @@ export const configureNextcloud = async function() { await runExec(container, ['php', 'occ', 'config:system:set', 'default_locale', '--value', 'en_US'], true) await runExec(container, ['php', 'occ', 'config:system:set', 'force_locale', '--value', 'en_US'], true) await runExec(container, ['php', 'occ', 'config:system:set', 'enforce_theme', '--value', 'light'], true) + // Speed up test and make them less flaky. If a cron execution is needed, it can be triggered manually. await runExec(container, ['php', 'occ', 'background:cron'], true) + // Checking apcu + const distributed = await runExec(container, ['php', 'occ', 'config:system:get', 'memcache.distributed']) + const local = await runExec(container, ['php', 'occ', 'config:system:get', 'memcache.local']) + const hashing = await runExec(container, ['php', 'occ', 'config:system:get', 'hashing_default_password']) + + console.log('āā Checking APCu configuration... š') + if (!distributed.trim().includes('\\OC\\Memcache\\APCu') + || !local.trim().includes('\\OC\\Memcache\\APCu') + || !hashing.trim().includes('true')) { + console.log('āā APCu is not properly configured š') + throw new Error('APCu is not properly configured') + } + console.log('ā āā OK !') + + // Saving DB state + console.log('āā Creating init DB snapshot...') + await runExec(container, ['cp', '/var/www/html/data/owncloud.db', '/var/www/html/data/owncloud.db-init'], true) + console.log('āā Nextcloud is now ready to use š') } @@ -261,7 +277,7 @@ const runExec = async function( command: string[], verbose = false, user = 'www-data', -) { +): Promise<string> { const exec = await container.exec({ Cmd: command, AttachStdout: true, @@ -270,6 +286,7 @@ const runExec = async function( }) return new Promise((resolve, reject) => { + let output = '' exec.start({}, (err, stream) => { if (err) { reject(err) @@ -277,11 +294,12 @@ const runExec = async function( if (stream) { stream.setEncoding('utf-8') stream.on('data', str => { + output += str if (verbose && str.trim() !== '') { console.log(`āā ${str.trim().replace(/\n/gi, '\nāā ')}`) } }) - stream.on('end', resolve) + stream.on('end', () => resolve(output)) } }) }) |