Skip to content

Commit

Permalink
Merge pull request #23 from snyk-tech-services/test/helpers
Browse files Browse the repository at this point in the history
test: delete projects after tests
  • Loading branch information
lili2311 authored Jun 3, 2020
2 parents 583155a + 25efffd commit 9cc3451
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 19 deletions.
18 changes: 18 additions & 0 deletions test/delete-test-projects.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { deleteProjects } from "../src/lib";
import { Project } from '../src/lib/types';

export async function deleteTestProjects(
orgId: string,
discoveredProjects: Project[],
): Promise<void> {
const projectIds: string[] = [];
discoveredProjects.forEach(async (project) => {
if (project.projectUrl) {
const projectId = project.projectUrl.split('/').slice(-1)[0];
projectIds.push(projectId);
}
});
if (projectIds.length > 0) {
await deleteProjects(orgId, projectIds);
}
}
21 changes: 4 additions & 17 deletions test/lib/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,12 @@ import {
pollImportUrl,
importTargets,
pollImportUrls,
deleteProjects,
} from '../../src/lib';
import { Project } from '../../src/lib/types';
import { deleteTestProjects } from '../delete-test-projects';
const ORG_ID = 'f0125d9b-271a-4b50-ad23-80e12575a1bf';
const GITHUB_INTEGRATION_ID = 'c4de291b-e083-4c43-a72c-113463e0d268';

async function deleteTestProjects(
discoveredProjects: Project[],
): Promise<void> {
const projectIds: string[] = [];
discoveredProjects.forEach(async (project) => {
if (project.projectUrl) {
const projectId = project.projectUrl.split('/').slice(-1)[0];
projectIds.push(projectId);
}
});
await deleteProjects(ORG_ID, projectIds);
}

describe('Single target', () => {
const discoveredProjects: Project[] = [];
it('Import & poll a repo', async () => {
Expand All @@ -41,7 +28,7 @@ describe('Single target', () => {
discoveredProjects.push(...projects);
}, 30000000);
afterAll(async () => {
await deleteTestProjects(discoveredProjects);
await deleteTestProjects(ORG_ID, discoveredProjects);
});
});

Expand Down Expand Up @@ -89,13 +76,13 @@ describe('Multiple targets', () => {
discoveredProjects.push(...projects);
}, 30000000);
afterAll(async () => {
await deleteTestProjects(discoveredProjects);
await deleteTestProjects(ORG_ID, discoveredProjects);
});
});

test.todo('Failed import 100%');
test.todo('Only 1 import fails out of a few + logs created');

describe('Polling', () => {
it.todo('Logs failed polls')
it.todo('Logs failed polls');
});
17 changes: 15 additions & 2 deletions test/scripts/import-projects.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,21 @@ import {
FAILED_LOG_NAME,
FAILED_PROJECTS_LOG_NAME,
} from '../../src/common';
import { deleteTestProjects } from '../delete-test-projects';
import { Project } from '../../src/lib/types';

const ORG_ID = 'f0125d9b-271a-4b50-ad23-80e12575a1bf';

describe('Import projects script', () => {
const logPath = path.resolve(__dirname, IMPORT_LOG_NAME);
const discoveredProjects: Project[] = [];

afterEach(() => {
fs.unlinkSync(logPath);
});
afterAll(async () => {
await deleteTestProjects(ORG_ID, discoveredProjects);
});
it('succeeds to import targets from file', async () => {
const projects = await ImportProjects(
path.resolve(__dirname + `/fixtures/${IMPORT_PROJECTS_FILE_NAME}`),
Expand All @@ -29,6 +38,7 @@ describe('Import projects script', () => {
expect(logFile).toMatch('shallow-goof-policy');
expect(logFile).toMatch('composer-with-vulns');
expect(logFile).toMatch('ruby-with-versions:');
discoveredProjects.push(...projects);
}, 30000000);
});

Expand All @@ -52,6 +62,7 @@ describe('Import skips previously imported', () => {

describe('Skips & logs issues', () => {
const OLD_ENV = process.env;
const discoveredProjects: Project[] = [];

afterEach(() => {
const importsInitiatedLog = path.resolve(
Expand All @@ -72,7 +83,6 @@ describe('Skips & logs issues', () => {
fs.unlinkSync(path);
fs.unlinkSync(path);
fs.unlinkSync(path);

} catch (e) {
// do nothing
}
Expand All @@ -81,7 +91,9 @@ describe('Skips & logs issues', () => {

process.env = { ...OLD_ENV };
}, 1000);

afterAll(async () => {
await deleteTestProjects(ORG_ID, discoveredProjects);
});
it('Skips any badly formatted targets', async () => {
const logRoot = __dirname + '/fixtures/invalid-target/';
process.env.SNYK_LOG_PATH = logRoot;
Expand Down Expand Up @@ -172,6 +184,7 @@ describe('Skips & logs issues', () => {
expect(failedImportLog).toBeNull();
}
expect(projects.length >= 1).toBeTruthy();
discoveredProjects.push(...projects);
}, 50000);
});

Expand Down

0 comments on commit 9cc3451

Please sign in to comment.