@@ -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';
|
||||
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user