Skip to content

Commit

Permalink
Merge pull request #38 from dependabot/jurre/integration-test-helper
Browse files Browse the repository at this point in the history
Introduce `integration` test helper to DRY up integration tests
  • Loading branch information
Jurre authored and GitHub committed Oct 26, 2021
2 parents 2eef128 + 7a16c29 commit c78cf6e
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 39 deletions.
9 changes: 2 additions & 7 deletions __tests__/container-service-integration.test.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
import {PROXY_IMAGE_NAME, UPDATER_IMAGE_NAME} from '../src/main'
import {ContainerService} from '../src/container-service'
import {ImageService} from '../src/image-service'
import {removeDanglingUpdaterContainers} from './helpers'
import {removeDanglingUpdaterContainers, integration} from './helpers'
import Docker from 'dockerode'
import {Credential, JobDetails} from '../src/api-client'
import {ProxyBuilder} from '../src/proxy'
import path from 'path'
import fs from 'fs'
import {JobParameters} from '../src/inputs'

describe('ContainerService', () => {
// Skip the test when we haven't preloaded the updater image
if (process.env.SKIP_INTEGRATION_TESTS) {
return
}

integration('ContainerService', () => {
const docker = new Docker()
const credentials: Credential[] = [
{
Expand Down
4 changes: 4 additions & 0 deletions __tests__/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,7 @@ export const eventFixturePath = (fixtureName: string): string => {
`${fixtureName}.json`
)
}

export const integration = process.env.SKIP_INTEGRATION_TESTS
? describe.skip
: describe
17 changes: 2 additions & 15 deletions __tests__/proxy-integration.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import {Credential} from '../src/api-client'
import {ImageService} from '../src/image-service'
import {PROXY_IMAGE_NAME} from '../src/main'
import {ProxyBuilder} from '../src/proxy'
import {removeDanglingUpdaterContainers} from './helpers'
import {integration, removeDanglingUpdaterContainers} from './helpers'
import {spawnSync} from 'child_process'
import fs from 'fs'
import path from 'path'

describe('ProxyBuilder', () => {
integration('ProxyBuilder', () => {
const docker = new Docker()
const jobId = 1
const credentials: Credential[] = [
Expand All @@ -23,10 +23,6 @@ describe('ProxyBuilder', () => {
const builder = new ProxyBuilder(docker, PROXY_IMAGE_NAME)

beforeAll(async () => {
// Skip the test when we haven't preloaded the updater image
if (process.env.SKIP_INTEGRATION_TESTS) {
return
}
await ImageService.pull(PROXY_IMAGE_NAME)
})

Expand All @@ -36,11 +32,6 @@ describe('ProxyBuilder', () => {

jest.setTimeout(20000)
it('should create a proxy container with the right details', async () => {
// Skip the test when we haven't preloaded the updater image
if (process.env.SKIP_INTEGRATION_TESTS) {
return
}

const proxy = await builder.run(jobId, credentials)
await proxy.container.start()

Expand Down Expand Up @@ -77,10 +68,6 @@ describe('ProxyBuilder', () => {

jest.setTimeout(20000)
it('copies in a custom root CA if configured', async () => {
if (process.env.SKIP_INTEGRATION_TESTS) {
return
}

// make a tmp dir at the repo root unless it already exists
const tmpDir = path.join(__dirname, '../tmp')
if (!fs.existsSync(tmpDir)) {
Expand Down
23 changes: 6 additions & 17 deletions __tests__/updater-integration.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ import {JobParameters} from '../src/inputs'
import {UPDATER_IMAGE_NAME, PROXY_IMAGE_NAME} from '../src/main'
import {Updater} from '../src/updater'

import {removeDanglingUpdaterContainers, runFakeDependabotApi} from './helpers'
import {
integration,
removeDanglingUpdaterContainers,
runFakeDependabotApi
} from './helpers'

const FAKE_SERVER_PORT = 9000

describe('Updater', () => {
integration('Updater', () => {
let server: any

// Used from this action to get job details and credentials
Expand Down Expand Up @@ -40,11 +44,6 @@ describe('Updater', () => {
const apiClient = new ApiClient(client, params)

beforeAll(async () => {
// Skip the test when we haven't preloaded the updater image
if (process.env.SKIP_INTEGRATION_TESTS) {
return
}

await ImageService.pull(UPDATER_IMAGE_NAME)
await ImageService.pull(PROXY_IMAGE_NAME)

Expand All @@ -54,23 +53,13 @@ describe('Updater', () => {
})

afterEach(async () => {
// Skip the test when we haven't preloaded the updater image
if (process.env.SKIP_INTEGRATION_TESTS) {
return
}

server && server() // teardown server process
await removeDanglingUpdaterContainers()
fs.rmdirSync(workingDirectory, {recursive: true})
})

jest.setTimeout(120000)
it('should run the updater and create a pull request', async () => {
// Skip the test when we haven't preloaded the updater image
if (process.env.SKIP_INTEGRATION_TESTS) {
return
}

const details = await apiClient.getJobDetails()
const credentials = await apiClient.getCredentials()

Expand Down

0 comments on commit c78cf6e

Please sign in to comment.