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 childProcessPromise from 'child-process-promise'
import path from 'path' import path from 'path'
import fs from 'fs' 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' import mkdirpCB from 'mkdirp'
const exec = childProcessPromise.exec 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) { if (require.main === module) {
Promise.all([ Promise.resolve()
waitForMastodonApiToStart(), .then(waitForMastodonApiToStart)
waitForMastodonUiToStart() .then(waitForMastodonUiToStart).catch(err => {
]).catch(err => {
console.error(err) console.error(err)
process.exit(1) process.exit(1)
}) })

View file

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