chore: improve tests
Signed-off-by: ElaineDeMattosSilvaB <elaine.de-mattos-silva-bezerra@deutschebahn.com>
This commit is contained in:
@@ -165,7 +165,11 @@ const httpProjectCatalogDynamic = all_projects_response.map(project => {
|
||||
`${apiBaseUrl}/projects/${path}/repository/files/catalog-info.yaml`,
|
||||
(req, res, ctx) => {
|
||||
const branch = req.url.searchParams.get('ref');
|
||||
if (branch === (project.default_branch || 'main' || 'develop')) {
|
||||
if (
|
||||
branch === project.default_branch ||
|
||||
branch === 'main' ||
|
||||
branch === 'develop'
|
||||
) {
|
||||
return res(ctx.status(200));
|
||||
}
|
||||
return res(ctx.status(404, 'Not Found'));
|
||||
|
||||
@@ -162,7 +162,7 @@ export const config_github_host: MockObject = {
|
||||
},
|
||||
};
|
||||
|
||||
export const config_single_integration_branch: MockObject = {
|
||||
export const config_single_integration: MockObject = {
|
||||
integrations: {
|
||||
gitlab: [
|
||||
{
|
||||
@@ -178,7 +178,6 @@ export const config_single_integration_branch: MockObject = {
|
||||
'test-id': {
|
||||
host: 'example.com',
|
||||
group: 'group1',
|
||||
branch: 'main',
|
||||
skipForkedRepos: false,
|
||||
schedule: {
|
||||
frequency: 'PT30M',
|
||||
@@ -724,7 +723,7 @@ export const all_users_response: GitLabUser[] = [
|
||||
avatar_url: 'https://secure.gravatar.com/',
|
||||
web_url: 'https://gitlab.example/luigi_mario',
|
||||
},
|
||||
// malfomed email address
|
||||
// malformed email address
|
||||
{
|
||||
id: 5,
|
||||
username: 'MarioMario',
|
||||
@@ -1338,7 +1337,7 @@ export const push_modif_event: EventParams = {
|
||||
* Expected Backstage entities
|
||||
*/
|
||||
|
||||
// includes only projects that have a default branch (for when the branch and default branch were not set in the config)
|
||||
// includes only projects that have a default branch (for when the branch and fallback branch were not set in the config)
|
||||
export const expected_location_entities_default_branch: MockObject[] =
|
||||
all_projects_response
|
||||
.filter(project => project.default_branch)
|
||||
|
||||
+37
-14
@@ -61,7 +61,7 @@ describe('GitlabDiscoveryEntityProvider - configuration', () => {
|
||||
});
|
||||
|
||||
it('should fail without schedule nor scheduler', () => {
|
||||
const config = new ConfigReader(mock.config_single_integration_branch);
|
||||
const config = new ConfigReader(mock.config_single_integration);
|
||||
|
||||
expect(() =>
|
||||
GitlabDiscoveryEntityProvider.fromConfig(config, {
|
||||
@@ -99,7 +99,7 @@ describe('GitlabDiscoveryEntityProvider - configuration', () => {
|
||||
|
||||
it('should instantiate provider with single simple discovery config', () => {
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const config = new ConfigReader(mock.config_single_integration_branch);
|
||||
const config = new ConfigReader(mock.config_single_integration);
|
||||
const providers = GitlabDiscoveryEntityProvider.fromConfig(config, {
|
||||
logger,
|
||||
schedule,
|
||||
@@ -229,7 +229,36 @@ describe('GitlabDiscoveryEntityProvider - refresh', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('should only ingest projects from specific branch', async () => {
|
||||
// branch and fallback branch are undefined in the config
|
||||
it('should ingest catalog from project default branch only', async () => {
|
||||
const config = new ConfigReader(mock.config_single_integration);
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const entityProviderConnection: EntityProviderConnection = {
|
||||
applyMutation: jest.fn(),
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
const provider = GitlabDiscoveryEntityProvider.fromConfig(config, {
|
||||
logger,
|
||||
schedule,
|
||||
})[0];
|
||||
|
||||
await provider.connect(entityProviderConnection);
|
||||
|
||||
await provider.refresh(logger);
|
||||
|
||||
expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({
|
||||
type: 'full',
|
||||
entities: mock.expected_location_entities_default_branch.filter(
|
||||
entity =>
|
||||
!entity.entity.metadata.annotations[
|
||||
'backstage.io/managed-by-location'
|
||||
].includes('awesome'),
|
||||
),
|
||||
});
|
||||
});
|
||||
|
||||
// branch was set in the config
|
||||
it('should ingest catalog from specific branch only', async () => {
|
||||
const config = new ConfigReader(
|
||||
mock.config_single_integration_specific_branch,
|
||||
);
|
||||
@@ -243,10 +272,6 @@ describe('GitlabDiscoveryEntityProvider - refresh', () => {
|
||||
schedule,
|
||||
})[0];
|
||||
|
||||
const configured_branch =
|
||||
mock.config_single_integration_branch.catalog.providers.gitlab['test-id']
|
||||
.branch;
|
||||
|
||||
await provider.connect(entityProviderConnection);
|
||||
|
||||
await provider.refresh(logger);
|
||||
@@ -255,9 +280,6 @@ describe('GitlabDiscoveryEntityProvider - refresh', () => {
|
||||
type: 'full',
|
||||
entities: mock.expected_location_entities_specific_branch.filter(
|
||||
entity =>
|
||||
entity.entity.metadata.annotations[
|
||||
'backstage.io/managed-by-location'
|
||||
].includes(configured_branch) &&
|
||||
!entity.entity.metadata.annotations[
|
||||
'backstage.io/managed-by-location'
|
||||
].includes('awesome'),
|
||||
@@ -265,7 +287,8 @@ describe('GitlabDiscoveryEntityProvider - refresh', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('should include projects from fallback branch', async () => {
|
||||
// fallback branch was set in the config
|
||||
it('should ingest catalog from default or fallback branch', async () => {
|
||||
const config = new ConfigReader(mock.config_fallbackBranch_branch);
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const entityProviderConnection: EntityProviderConnection = {
|
||||
@@ -389,7 +412,7 @@ describe('GitlabDiscoveryEntityProvider - events', () => {
|
||||
expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(0);
|
||||
});
|
||||
it('should apply delta mutations on added files from push event', async () => {
|
||||
const config = new ConfigReader(mock.config_single_integration_branch);
|
||||
const config = new ConfigReader(mock.config_single_integration);
|
||||
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
@@ -416,7 +439,7 @@ describe('GitlabDiscoveryEntityProvider - events', () => {
|
||||
});
|
||||
|
||||
it('should apply delta mutations on removed files from push event', async () => {
|
||||
const config = new ConfigReader(mock.config_single_integration_branch);
|
||||
const config = new ConfigReader(mock.config_single_integration);
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const entityProviderConnection: EntityProviderConnection = {
|
||||
@@ -442,7 +465,7 @@ describe('GitlabDiscoveryEntityProvider - events', () => {
|
||||
});
|
||||
|
||||
it('should call refresh on added files from push event', async () => {
|
||||
const config = new ConfigReader(mock.config_single_integration_branch);
|
||||
const config = new ConfigReader(mock.config_single_integration);
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const entityProviderConnection: EntityProviderConnection = {
|
||||
|
||||
Reference in New Issue
Block a user