Skip to content

Commit

Permalink
feat(utils): add upload logic (#66)
Browse files Browse the repository at this point in the history
This PR includes:
- [x] add `organisation` and `project` to `UploadConfig`
- [x] add upload logic and tests

closes #21 
closes #57 
closes #85

---------

Co-authored-by: Matěj Chalk <matej.chalk@flowup.cz>
Co-authored-by: Matěj Chalk <34691111+matejchalk@users.noreply.github.com>
  • Loading branch information
3 people committed Oct 11, 2023
1 parent 6440590 commit 3e88ffc
Show file tree
Hide file tree
Showing 111 changed files with 1,203 additions and 658 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

.env

# compiled output
dist
tmp
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
// TODO: import plugins using NPM package names using local registry: https://github.com/flowup/quality-metrics-cli/issues/33
import eslintPlugin from '../../../dist/packages/plugin-eslint';
// import eslintPlugin from '../../../dist/packages/plugin-eslint';
import lighthousePlugin from '../../../dist/packages/plugin-lighthouse';

export default {
persist: { outputPath: 'tmp/cli-config-out.json' },
categories: [],
plugins: [
await eslintPlugin({ eslintrc: '.eslintrc.json', patterns: '**/*.ts' }),
// TODO: uncomment once runner is implemented
// await eslintPlugin({ eslintrc: '.eslintrc.json', patterns: '**/*.ts' }),
lighthousePlugin({ config: '.lighthouserc.json' }),
],
};
13 changes: 13 additions & 0 deletions examples/cli-e2e/mocks/code-pushup.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// TODO: import plugins using NPM package names using local registry: https://github.com/flowup/quality-metrics-cli/issues/33
// import eslintPlugin from '../../../dist/packages/plugin-eslint';
import lighthousePlugin from '../../../dist/packages/plugin-lighthouse';

export default {
persist: { outputPath: 'tmp/cli-config-out.json' },
categories: [],
plugins: [
// TODO: uncomment once runner is implemented
// await eslintPlugin({ eslintrc: '.eslintrc.json', patterns: '**/*.ts' }),
lighthousePlugin({ config: '.lighthouserc.json' }),
],
};
13 changes: 13 additions & 0 deletions examples/cli-e2e/mocks/code-pushup.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// TODO: import plugins using NPM package names using local registry: https://github.com/flowup/quality-metrics-cli/issues/33
// import eslintPlugin from '../../../dist/packages/plugin-eslint';
import lighthousePlugin from '../../../dist/packages/plugin-lighthouse';

export default {
persist: { outputPath: 'tmp/cli-config-out.json' },
categories: [],
plugins: [
// TODO: uncomment once runner is implemented
// await eslintPlugin({ eslintrc: '.eslintrc.json', patterns: '**/*.ts' }),
lighthousePlugin({ config: '.lighthouserc.json' }),
],
};
12 changes: 0 additions & 12 deletions examples/cli-e2e/mocks/config.mock.mjs

This file was deleted.

12 changes: 0 additions & 12 deletions examples/cli-e2e/mocks/config.mock.ts

This file was deleted.

1 change: 1 addition & 0 deletions examples/cli-e2e/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
}
}
},
"implicitDependencies": ["cli", "plugin-eslint", "plugin-lighthouse"],
"tags": ["scope:core", "scope:plugin", "type:e2e"]
}
48 changes: 19 additions & 29 deletions examples/cli-e2e/tests/cli.spec.ts
Original file line number Diff line number Diff line change
@@ -1,43 +1,33 @@
import { cli } from '@quality-metrics/cli';
import eslintPlugin from '@quality-metrics/eslint-plugin';
import lighthousePlugin from '@quality-metrics/lighthouse-plugin';
import {
CliArgsObject,
executeProcess,
objectToCliArgs,
} from '@code-pushup/utils';
import { join } from 'path';
import { describe, expect, it } from 'vitest';

const configFile = (ext: 'ts' | 'js' | 'mjs') =>
join(process.cwd(), `examples/cli-e2e/mocks/config.mock.${ext}`);
join(process.cwd(), `examples/cli-e2e/mocks/code-pushup.config.${ext}`);

const execCli = (argObj: Partial<CliArgsObject>) =>
executeProcess({
command: 'node',
args: objectToCliArgs({
_: './dist/packages/cli/index.js',
verbose: true,
...argObj,
}),
});

describe('cli', () => {
it('should load .js config file', async () => {
const argv = await cli(['--configPath', configFile('js'), '--verbose'])
.argv;
expect(argv.plugins[0]).toEqual(
await eslintPlugin({ eslintrc: '.eslintrc.json', patterns: '**/*.ts' }),
);
expect(argv.plugins[1]).toEqual(
lighthousePlugin({ config: '.lighthouserc.json' }),
);
await execCli({ configPath: configFile('js') });
});

it('should load .mjs config file', async () => {
const argv = await cli(['--configPath', configFile('mjs'), '--verbose'])
.argv;
expect(argv.plugins[0]).toEqual(
await eslintPlugin({ eslintrc: '.eslintrc.json', patterns: '**/*.ts' }),
);
expect(argv.plugins[1]).toEqual(
lighthousePlugin({ config: '.lighthouserc.json' }),
);
await execCli({ configPath: configFile('mjs') });
});

it('should load .ts config file', async () => {
const argv = await cli(['--configPath', configFile('ts'), '--verbose'])
.argv;
expect(argv.plugins[0]).toEqual(
await eslintPlugin({ eslintrc: '.eslintrc.json', patterns: '**/*.ts' }),
);
expect(argv.plugins[1]).toEqual(
lighthousePlugin({ config: '.lighthouserc.json' }),
);
await execCli({ configPath: configFile('ts') });
});
});
18 changes: 9 additions & 9 deletions examples/cli-e2e/tsconfig.spec.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
},
"include": [
"vite.config.ts",
"src/**/*.test.ts",
"src/**/*.spec.ts",
"src/**/*.test.tsx",
"src/**/*.spec.tsx",
"src/**/*.test.js",
"src/**/*.spec.js",
"src/**/*.test.jsx",
"src/**/*.spec.jsx",
"src/**/*.d.ts"
"tests/**/*.test.ts",
"tests/**/*.spec.ts",
"tests/**/*.test.tsx",
"tests/**/*.spec.tsx",
"tests/**/*.test.js",
"tests/**/*.spec.js",
"tests/**/*.test.jsx",
"tests/**/*.spec.jsx",
"tests/**/*.d.ts"
]
}
Loading

0 comments on commit 3e88ffc

Please sign in to comment.