mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-01 14:10:02 -05:00
ce9b531892
[server-ce] add test for graceful shutdown GitOrigin-RevId: 5e72e0073169009d2e3ece5a79cbd62051f6ad5b
85 lines
1.8 KiB
TypeScript
85 lines
1.8 KiB
TypeScript
const hostAdminUrl = Cypress.env('ADMIN_CLIENT_URL') || 'http://host-admin'
|
|
|
|
export async function dockerCompose(cmd: string, ...args: string[]) {
|
|
return await fetchJSON(`${hostAdminUrl}/docker/compose/${cmd}`, {
|
|
method: 'POST',
|
|
body: JSON.stringify({
|
|
args,
|
|
}),
|
|
})
|
|
}
|
|
|
|
export async function mongoInit() {
|
|
return await fetchJSON(`${hostAdminUrl}/mongo/init`, {
|
|
method: 'POST',
|
|
})
|
|
}
|
|
|
|
export async function resetData() {
|
|
return await fetchJSON(`${hostAdminUrl}/reset/data`, {
|
|
method: 'POST',
|
|
})
|
|
}
|
|
|
|
export async function reconfigure({
|
|
pro = false,
|
|
version = 'latest',
|
|
vars = {},
|
|
withDataDir = false,
|
|
}) {
|
|
return await fetchJSON(`${hostAdminUrl}/reconfigure`, {
|
|
method: 'POST',
|
|
body: JSON.stringify({
|
|
pro,
|
|
version,
|
|
vars,
|
|
withDataDir,
|
|
}),
|
|
})
|
|
}
|
|
|
|
async function fetchJSON(
|
|
input: RequestInfo,
|
|
init?: RequestInit
|
|
): Promise<{ stdout: string; stderr: string }> {
|
|
if (init?.body) {
|
|
init.headers = { 'Content-Type': 'application/json' }
|
|
}
|
|
const res = await fetch(input, init)
|
|
const { error, stdout, stderr } = await res.json()
|
|
if (error) {
|
|
console.error(input, init, 'failed:', error)
|
|
if (stdout) console.log(stdout)
|
|
if (stderr) console.warn(stderr)
|
|
const err = new Error(error.message)
|
|
Object.assign(err, error)
|
|
throw err
|
|
}
|
|
return { stdout, stderr }
|
|
}
|
|
|
|
export async function runScript({
|
|
cwd,
|
|
script,
|
|
args = [],
|
|
}: {
|
|
cwd: string
|
|
script: string
|
|
args?: string[]
|
|
}) {
|
|
return await fetchJSON(`${hostAdminUrl}/run/script`, {
|
|
method: 'POST',
|
|
body: JSON.stringify({
|
|
cwd,
|
|
script,
|
|
args,
|
|
}),
|
|
})
|
|
}
|
|
|
|
export async function getRedisKeys() {
|
|
const { stdout } = await fetchJSON(`${hostAdminUrl}/redis/keys`, {
|
|
method: 'GET',
|
|
})
|
|
return stdout.split('\n')
|
|
}
|