Create commands/create-matrix.js

This commit is contained in:
Aleksandr Statciuk 2022-01-06 17:26:41 +03:00
parent a1f0bc2d2a
commit 543d029baf
2 changed files with 35 additions and 0 deletions

View file

@ -0,0 +1,15 @@
const { logger, db } = require('../core')
async function main() {
const docs = await db.find({}).sort({ cluster_id: 1 })
const cluster_id = docs.reduce((acc, curr) => {
if (!acc.includes(curr.cluster_id)) acc.push(curr.cluster_id)
return acc
}, [])
const matrix = { cluster_id }
const output = `::set-output name=matrix::${JSON.stringify(matrix)}`
logger.info(output)
}
main()

View file

@ -0,0 +1,20 @@
const fs = require('fs')
const path = require('path')
const { execSync } = require('child_process')
beforeEach(() => {
fs.copyFileSync('tests/__data__/input/test.db', 'tests/__data__/temp/test.db')
})
afterEach(() => {
fs.rmdirSync('tests/__data__/temp', { recursive: true })
fs.mkdirSync('tests/__data__/temp')
})
it('can create valid matrix', () => {
const result = execSync(
'DB_FILEPATH=tests/__data__/temp/test.db node scripts/commands/create-matrix.js',
{ encoding: 'utf8' }
)
expect(result).toBe('::set-output name=matrix::{"cluster_id":[1]}\n')
})