code-climate

Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Fredrik Adelöw
2022-08-19 09:38:13 +02:00
parent a9b435ed1c
commit e117ad2fec
9 changed files with 10 additions and 30 deletions
@@ -17,10 +17,12 @@
import { CodeClimateData } from './code-climate-data';
import { createApiRef } from '@backstage/core-plugin-api';
/** @public */
export const codeClimateApiRef = createApiRef<CodeClimateApi>({
id: 'plugin.code-climate.service',
});
/** @public */
export interface CodeClimateApi {
fetchData(repoID: string): Promise<CodeClimateData>;
}
@@ -164,6 +164,7 @@ export type CodeClimateIssuesData = {
meta: { current_page: number; total_pages: number; total_count: number };
};
/** @public */
export type CodeClimateData = {
repoID: string;
maintainability: {
@@ -14,5 +14,4 @@
* limitations under the License.
*/
export { mockData } from './mock-api';
export { MockCodeClimateApi } from './mock-api';
@@ -47,6 +47,7 @@ export const mockData: CodeClimateData = {
numberOfOtherIssues: 26,
};
/** @public */
export class MockCodeClimateApi implements CodeClimateApi {
fetchData(): Promise<CodeClimateData> {
return new Promise(resolve => {
@@ -34,16 +34,12 @@ const codeSmellsQuery = `${basicIssuesOptions}&${categoriesFilter}=Complexity`;
const duplicationQuery = `${basicIssuesOptions}&${categoriesFilter}=Duplication`;
const otherIssuesQuery = `${basicIssuesOptions}&${categoriesFilter}=Bug%20Risk`;
type Options = {
discoveryApi: DiscoveryApi;
fetchApi: FetchApi;
};
/** @public */
export class ProductionCodeClimateApi implements CodeClimateApi {
private readonly discoveryApi: DiscoveryApi;
private readonly fetchApi: FetchApi;
constructor(options: Options) {
constructor(options: { discoveryApi: DiscoveryApi; fetchApi: FetchApi }) {
this.discoveryApi = options.discoveryApi;
this.fetchApi = options.fetchApi;
}
@@ -17,7 +17,7 @@
import React from 'react';
import { render } from '@testing-library/react';
import { CodeClimateTable } from './CodeClimateTable';
import { mockData } from '../../api/mock';
import { mockData } from '../../api/mock/mock-api';
import { ThemeProvider } from '@material-ui/core';
import { lightTheme } from '@backstage/theme';
+2
View File
@@ -30,6 +30,7 @@ export const rootRouteRef = createRouteRef({
id: 'code-climate',
});
/** @public */
export const codeClimatePlugin = createPlugin({
id: 'code-climate',
apis: [
@@ -48,6 +49,7 @@ export const codeClimatePlugin = createPlugin({
},
});
/** @public */
export const EntityCodeClimateCard = codeClimatePlugin.provide(
createComponentExtension({
name: 'EntityCodeClimateCard',