Be verbose about expected output

This commit is contained in:
Elena Tanasoiu
2022-09-28 15:38:29 +01:00
parent b2427a6534
commit aea5d33c42

View File

@@ -1,14 +1,9 @@
import { expect } from 'chai';
import {
VariantAnalysisScannedRepository as ApiVariantAnalysisScannedRepository,
VariantAnalysisSkippedRepositories as ApiVariantAnalysisSkippedRepositories,
VariantAnalysisSkippedRepositoryGroup as ApiVariantAnalysisSkippedRepositoryGroup,
VariantAnalysisNotFoundRepositoryGroup as ApiVariantAnalysisNotFoundRepositoryGroup
} from '../../../remote-queries/gh-api/variant-analysis';
import {
VariantAnalysisQueryLanguage,
VariantAnalysisSkippedRepositories,
VariantAnalysisSkippedRepositoryGroup,
VariantAnalysisScannedRepository,
VariantAnalysisRepoStatus
} from '../../../remote-queries/shared/variant-analysis';
@@ -27,6 +22,8 @@ describe('Variant Analysis processor', function() {
it('should process an API response and return a variant analysis', () => {
const result = processVariantAnalysis(mockSubmission, mockApiResponse);
const { access_mismatch_repos, no_codeql_db_repos, not_found_repo_nwos, over_limit_repos } = skippedRepos;
expect(result).to.eql({
'id': 123,
'controllerRepoId': 456,
@@ -47,7 +44,58 @@ describe('Variant Analysis processor', function() {
transformScannedRepo(VariantAnalysisRepoStatus.Pending, scannedRepos[1]),
transformScannedRepo(VariantAnalysisRepoStatus.InProgress, scannedRepos[2]),
],
'skippedRepos': transformSkippedRepos(skippedRepos)
'skippedRepos': {
'accessMismatchRepos': {
'repositories': [
{
'fullName': access_mismatch_repos.repositories[0].full_name,
'id': access_mismatch_repos.repositories[0].id
},
{
'fullName': access_mismatch_repos.repositories[1].full_name,
'id': access_mismatch_repos.repositories[1].id
}
],
'repositoryCount': access_mismatch_repos.repository_count
},
'noCodeqlDbRepos': {
'repositories': [
{
'fullName': no_codeql_db_repos.repositories[0].full_name,
'id': no_codeql_db_repos.repositories[0].id
},
{
'fullName': no_codeql_db_repos.repositories[1].full_name,
'id': no_codeql_db_repos.repositories[1].id,
}
],
'repositoryCount': 2
},
'notFoundRepos': {
'repositories': [
{
'fullName': not_found_repo_nwos.repository_full_names[0]
},
{
'fullName': not_found_repo_nwos.repository_full_names[1]
}
],
'repositoryCount': not_found_repo_nwos.repository_count
},
'overLimitRepos': {
'repositories': [
{
'fullName': over_limit_repos.repositories[0].full_name,
'id': over_limit_repos.repositories[0].id
},
{
'fullName': over_limit_repos.repositories[1].full_name,
'id': over_limit_repos.repositories[1].id
}
],
'repositoryCount': over_limit_repos.repository_count
}
}
});
});
@@ -67,42 +115,4 @@ describe('Variant Analysis processor', function() {
'resultCount': scannedRepo.result_count
};
}
function transformSkippedRepos(
skippedRepos: ApiVariantAnalysisSkippedRepositories
): VariantAnalysisSkippedRepositories {
return {
accessMismatchRepos: transformSkippedRepoGroup(skippedRepos.access_mismatch_repos),
noCodeqlDbRepos: transformSkippedRepoGroup(skippedRepos.no_codeql_db_repos),
notFoundRepos: transformNotFoundRepoGroup(skippedRepos.not_found_repo_nwos),
overLimitRepos: transformSkippedRepoGroup(skippedRepos.over_limit_repos)
};
}
});
function transformSkippedRepoGroup(repoGroup: ApiVariantAnalysisSkippedRepositoryGroup): VariantAnalysisSkippedRepositoryGroup {
const repos = repoGroup.repositories.map(repo => {
return {
id: repo.id,
fullName: repo.full_name
};
});
return {
repositoryCount: repoGroup.repository_count,
repositories: repos
};
}
function transformNotFoundRepoGroup(repoGroup: ApiVariantAnalysisNotFoundRepositoryGroup): VariantAnalysisSkippedRepositoryGroup {
const repos = repoGroup.repository_nwos.map(nwo => {
return {
fullName: nwo
};
});
return {
repositoryCount: repoGroup.repository_count,
repositories: repos
};
}