return new Promise((resolve, reject) => { if (!answers.icons) { resolve(answers); } else if (/^https?/.test(answers.icons)) { const url = answers.icons; const dir = rndTmpdir('pwa-manifest'); mkdirp.sync(dir); answers.icons = path.join(dir, path.basename(answers.icons)); got.stream(url).pipe(fs.createWriteStream(answers.icons) .on('finish', () => resolve(answers)) .on('error', () => reject()) ); } else { answers.icons = path.resolve(process.cwd(), answers.icons); resolve(answers); } });
import fs from 'fs'; import test from 'ava'; import tmpdir from 'os-random-tmpdir'; import fontGot from './'; var tmp = tmpdir('got-google-fonts'); test(t => { return fontGot(tmp, 'Droid Sans', { variant: 'regular' }) .then(res => { t.true(res.length > 0); t.true(fs.existsSync(res[0])); }, () => { t.fail('Failed'); }); });