aboutsummaryrefslogtreecommitdiffstats
path: root/cypress
diff options
context:
space:
mode:
Diffstat (limited to 'cypress')
-rw-r--r--cypress/dockerNode.ts30
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))
}
})
})