import assert from 'node:assert/strict' export async function onBuild({ utils, inputs }) { const actual = utils.git for (const [category, names] of Object.entries(inputs.expected)) { assert.deepEqual([...actual[`${category}Files`]].sort(), [...names].sort(), category) } for (const [category, names] of Object.entries(inputs.expected)) { for (const name of names) assert.deepEqual(actual.fileMatch(name)[category], [name], `${category} fileMatch ${JSON.stringify(name)}`) } const local = 'independent-netlify-plugin-local' const options = { cwd: inputs.cwd, stdio: 'pipe' } assert.equal((await utils.run.command(local, options)).stdout, 'project-local') assert.equal((await utils.run.command(local)).stdout, 'project-local') await assert.rejects(utils.run.command(local, { ...options, preferLocal: false }), { code: 'ENOENT' }) const child = utils.run(process.execPath, undefined, { ...options, env: { INDEPENDENT_CHILD: 'delivered' } }) child.stdin.end('console.log(JSON.stringify({ cwd:process.cwd(), value:process.env.INDEPENDENT_CHILD }))') assert.deepEqual(JSON.parse((await child).stdout), { cwd: inputs.cwd, value: 'delivered' }) assert.equal((await utils.run(local, options)).stdout, 'project-local') assert.equal((await utils.run(process.execPath, ['-p', '21*2'], options)).stdout, '42') await assert.rejects(utils.run(process.execPath, ['-e', 'process.exit(7)'], options), { exitCode: 7 }) utils.status.show({ summary: 'All real plugin utility checks passed', text: JSON.stringify(inputs.expected) }) }