jenkins-backend: depend on interface rather than implementation

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2022-02-15 12:25:41 +01:00
parent 80c627d098
commit 377fce4677
4 changed files with 13 additions and 8 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-jenkins-backend': patch
---
The `DefaultJenkinsInfoProvider.fromConfig` now requires an implementation of the `CatalogApi` rather than a `CatalogClient` instance.
+2 -2
View File
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
import { CatalogClient } from '@backstage/catalog-client';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { EntityName } from '@backstage/catalog-model';
import express from 'express';
@@ -21,7 +21,7 @@ export class DefaultJenkinsInfoProvider implements JenkinsInfoProvider {
// (undocumented)
static fromConfig(options: {
config: Config;
catalog: CatalogClient;
catalog: CatalogApi;
}): DefaultJenkinsInfoProvider;
// (undocumented)
getInstance(opt: {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { CatalogClient } from '@backstage/catalog-client';
import { CatalogApi } from '@backstage/catalog-client';
import { Entity, EntityName } from '@backstage/catalog-model';
import { ConfigReader } from '@backstage/config';
import {
@@ -159,9 +159,9 @@ describe('JenkinsConfig', () => {
});
describe('DefaultJenkinsInfoProvider', () => {
const mockCatalog: jest.Mocked<CatalogClient> = {
const mockCatalog: jest.Mocked<CatalogApi> = {
getEntityByName: jest.fn(),
} as any as jest.Mocked<CatalogClient>;
} as any as jest.Mocked<CatalogApi>;
const entityRef: EntityName = {
kind: 'Component',
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { CatalogClient } from '@backstage/catalog-client';
import { CatalogApi } from '@backstage/catalog-client';
import {
Entity,
EntityName,
@@ -168,12 +168,12 @@ export class DefaultJenkinsInfoProvider implements JenkinsInfoProvider {
private constructor(
private readonly config: JenkinsConfig,
private readonly catalog: CatalogClient,
private readonly catalog: CatalogApi,
) {}
static fromConfig(options: {
config: Config;
catalog: CatalogClient;
catalog: CatalogApi;
}): DefaultJenkinsInfoProvider {
return new DefaultJenkinsInfoProvider(
JenkinsConfig.fromConfig(options.config),