216 lines
4.4 KiB
JavaScript
216 lines
4.4 KiB
JavaScript
import _ from 'lodash'
|
|
|
|
const apiClient = require('../../src/api-client')
|
|
const methods = apiClient.default.methods
|
|
|
|
test('it can get the application types', () => {
|
|
const data = {
|
|
types: {
|
|
drupal: {
|
|
id: 'drupal',
|
|
name: 'Drupal'
|
|
},
|
|
symfony: {
|
|
id: 'symfony',
|
|
name: 'Symfony'
|
|
}
|
|
}
|
|
}
|
|
|
|
methods.setData(data)
|
|
|
|
expect(methods.getTypes()).toBe(data.types)
|
|
})
|
|
|
|
test('it can get the applications', () => {
|
|
const data = {
|
|
applications: {
|
|
1: {
|
|
id: 1,
|
|
name: 'Rebuilding Acquia',
|
|
machineName: 'rebuildingacquia',
|
|
type: 'drupal',
|
|
level: 'Enterprise',
|
|
environments: {},
|
|
tasks: {}
|
|
},
|
|
2: {
|
|
id: 2,
|
|
name: 'Oliver Davies',
|
|
machineName: 'oliverdavies',
|
|
type: 'drupal',
|
|
level: 'Professional',
|
|
environments: {},
|
|
tasks: {}
|
|
}
|
|
}
|
|
}
|
|
|
|
methods.setData(data)
|
|
|
|
expect(methods.getApplications()).toBe(data.applications)
|
|
})
|
|
|
|
test('it can get a single application', () => {
|
|
const data = {
|
|
applications: {
|
|
1: {
|
|
id: 1,
|
|
name: 'Rebuilding Acquia',
|
|
machineName: 'rebuildingacquia',
|
|
type: 'drupal',
|
|
level: 'Enterprise',
|
|
environments: {},
|
|
tasks: {}
|
|
},
|
|
2: {
|
|
id: 2,
|
|
name: 'Oliver Davies',
|
|
machineName: 'oliverdavies',
|
|
type: 'drupal',
|
|
level: 'Professional',
|
|
environments: {},
|
|
tasks: {}
|
|
}
|
|
}
|
|
}
|
|
|
|
methods.setData(data)
|
|
|
|
_.forEach([1, 2], (applicationId) => {
|
|
expect(methods.getApplication(applicationId))
|
|
.toBe(data.applications[applicationId])
|
|
})
|
|
})
|
|
|
|
test('it can get an environment for an application', () => {
|
|
const data = {
|
|
applications: {
|
|
1: {
|
|
id: 1,
|
|
name: 'Rebuilding Acquia',
|
|
machineName: 'rebuildingacquia',
|
|
type: 'drupal',
|
|
level: 'Enterprise',
|
|
environments: {
|
|
dev: {
|
|
name: 'Dev',
|
|
url: 'dev.oliverdavies.uk',
|
|
label: 'develop',
|
|
versions: {
|
|
php: '7.2'
|
|
}
|
|
},
|
|
stage: {
|
|
name: 'Stage',
|
|
url: 'stg.oliverdavies.uk',
|
|
label: 'master',
|
|
versions: {
|
|
php: '7.2'
|
|
}
|
|
},
|
|
prod: {
|
|
name: 'Prod',
|
|
url: 'oliverdavies.uk',
|
|
label: 'tags/2018-12-21',
|
|
versions: {
|
|
php: '7.2'
|
|
}
|
|
},
|
|
tasks: {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
methods.setData(data)
|
|
|
|
_.forEach(['dev', 'stage', 'prod'], (environmentName) => {
|
|
expect(methods.getEnvironment(1, environmentName))
|
|
.toBe(data.applications[1].environments[environmentName])
|
|
})
|
|
})
|
|
|
|
test('it can get the type of an application', () => {
|
|
const data = {
|
|
types: {
|
|
drupal: {
|
|
id: 'drupal',
|
|
name: 'Drupal'
|
|
},
|
|
symfony: {
|
|
id: 'symfony',
|
|
name: 'Symfony'
|
|
}
|
|
}
|
|
}
|
|
|
|
methods.setData(data)
|
|
|
|
const applications = {
|
|
drupal: {
|
|
type: 'drupal'
|
|
},
|
|
symfony: {
|
|
type: 'symfony'
|
|
}
|
|
}
|
|
|
|
_.forEach(applications, (application, expected) => {
|
|
expect(methods.getApplicationType(application)).toBe(data.types[expected])
|
|
})
|
|
})
|
|
|
|
test('it can get a version from an environment', () => {
|
|
const data = {
|
|
applications: {
|
|
1: {
|
|
id: 1,
|
|
name: 'Rebuilding Acquia',
|
|
machineName: 'rebuildingacquia',
|
|
type: 'drupal',
|
|
level: 'Enterprise',
|
|
environments: {
|
|
dev: {
|
|
name: 'Dev',
|
|
url: 'dev.rebuilding-acquia.com',
|
|
label: 'develop',
|
|
versions: {
|
|
php: '5.6'
|
|
}
|
|
},
|
|
stage: {
|
|
name: 'Stage',
|
|
url: 'stg.rebuilding-acquia.com',
|
|
label: 'master',
|
|
versions: {
|
|
php: '7.1'
|
|
}
|
|
},
|
|
prod: {
|
|
name: 'Prod',
|
|
url: 'rebuilding-acquia.com',
|
|
label: 'tags/2018-12-21',
|
|
versions: {
|
|
php: '7.2'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
methods.setData(data)
|
|
|
|
const expected = {
|
|
dev: '5.6',
|
|
stage: '7.1',
|
|
prod: '7.2'
|
|
}
|
|
|
|
_.forEach(expected, (version, environment) => {
|
|
expect(methods.getVersion('php', data.applications[1].environments[environment]))
|
|
.toBe(version)
|
|
})
|
|
})
|