fix test setup process

This commit is contained in:
Nolan Lawson 2018-03-06 09:21:17 -08:00
parent 814a4dce76
commit 92c59a18e4
4 changed files with 36 additions and 6 deletions

View file

@ -3,7 +3,7 @@ import pify from 'pify'
import childProcessPromise from 'child-process-promise'
import path from 'path'
import fs from 'fs'
import { waitForMastodonApiToStart, waitForMastodonUiToStart } from './wait-for-mastodon-to-start'
import { waitForMastodonUiToStart, waitForMastodonApiToStart } from './wait-for-mastodon-to-start'
import mkdirpCB from 'mkdirp'
const exec = childProcessPromise.exec

View file

@ -0,0 +1,30 @@
import fetch from 'node-fetch'
import { actions } from './mastodon-data'
const numStatuses = actions.filter(_ => _.post || _.boost).length
async function waitForMastodonData () {
while (true) {
try {
let json = await ((await fetch('http://127.0.0.1:3000/api/v1/instance')).json())
if (json.stats.status_count === numStatuses) {
break
} else {
console.log('Waiting for number of statuses to equal ' +
numStatuses + ' (currently ' + json.stats.status_count + ')...')
}
} catch (err) {
console.log('Waiting for Mastodon API to be available...')
} finally {
await new Promise(resolve => setTimeout(resolve, 5000))
}
}
console.log('Mastodon data populated')
}
if (require.main === module) {
waitForMastodonData().catch(err => {
console.error(err)
process.exit(1)
})
}

View file

@ -31,10 +31,9 @@ export async function waitForMastodonApiToStart () {
}
if (require.main === module) {
Promise.all([
waitForMastodonApiToStart(),
waitForMastodonUiToStart()
]).catch(err => {
Promise.resolve()
.then(waitForMastodonApiToStart)
.then(waitForMastodonUiToStart).catch(err => {
console.error(err)
process.exit(1)
})

View file

@ -16,8 +16,9 @@
"run-testcafe": "cross-env-shell testcafe --hostname localhost --skip-js-errors $BROWSER tests/spec",
"test": "cross-env BROWSER=chrome:headless npm run test-browser",
"test-browser": "run-p --race run-mastodon dev test-mastodon",
"test-mastodon": "run-s wait-for-mastodon-to-start run-testcafe",
"test-mastodon": "run-s wait-for-mastodon-to-start wait-for-mastodon-data run-testcafe",
"wait-for-mastodon-to-start": "node -r @std/esm bin/wait-for-mastodon-to-start.js",
"wait-for-mastodon-data": "node -r @std/esm bin/wait-for-mastodon-data.js",
"globalize-css": "node ./bin/globalize-css.js",
"deglobalize-css": "node ./bin/globalize-css.js --reverse",
"backup-mastodon-data": "pg_dump -Fc mastodon_development > fixtures/dump.sql && cd mastodon/public/system && tar -czf ../../../fixtures/system.tgz ."