Skip to content

Commit

Permalink
Merge pull request #268 from DEFRA/258060-sort-out-deployments-part-II
Browse files Browse the repository at this point in the history
Tweak on transform
  • Loading branch information
feedmypixel authored Jan 22, 2024
2 parents e24040c + 35cc7fc commit e9a6f52
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/__fixtures__/deployment-stopped.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,4 +120,4 @@ const deploymentStoppedFixture = [
}
]

export { deploymentRequestedFixture }
export { deploymentStoppedFixture }
16 changes: 9 additions & 7 deletions src/server/deployments/transformers/transform-deployment.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { isNil, omit, pickBy } from 'lodash'
import { omit, pickBy } from 'lodash'

import { provideDeploymentStatusClassname } from '~/src/server/deployments/helpers/provide-deployment-status-classname'
import { deploymentStatus } from '~/src/server/deployments/constants/deployment-status'
Expand Down Expand Up @@ -55,7 +55,13 @@ function transformDeployment(deploymentEvents) {
deploymentEvent.status.toLowerCase() === deploymentStatus.requested
)

if (requestedDeployment && isNil(requestedDeployment.ecsSvcDeploymentId)) {
const deploymentTasks = deploymentEvents.filter(
(event) =>
event.ecsSvcDeploymentId === requestedDeployment.ecsSvcDeploymentId &&
event.status.toLowerCase() !== deploymentStatus.requested
)

if (requestedDeployment && deploymentTasks.length === 0) {
return {
...omit(pickBy(requestedDeployment), [
'status',
Expand All @@ -68,11 +74,7 @@ function transformDeployment(deploymentEvents) {
}
}

if (requestedDeployment && !isNil(requestedDeployment?.ecsSvcDeploymentId)) {
const deploymentTasks = deploymentEvents.filter(
(event) =>
event.ecsSvcDeploymentId === requestedDeployment.ecsSvcDeploymentId
)
if (requestedDeployment && deploymentTasks.length) {
const deploymentTaskIds = [
...new Set(
deploymentTasks
Expand Down
62 changes: 62 additions & 0 deletions src/server/deployments/transformers/transform-deployment.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { deploymentRequestedFixture } from '~/src/__fixtures__/deployment-reques
import { deploymentInProgressFixture } from '~/src/__fixtures__/deployment-in-progress'
import { deploymentSuccessFixture } from '~/src/__fixtures__/deployment-success'
import { deploymentFailedFixture } from '~/src/__fixtures__/deployment-failed'
import { deploymentStoppedFixture } from '~/src/__fixtures__/deployment-stopped'

describe('#transformDeployment', () => {
describe('When a deployment has been requested', () => {
Expand Down Expand Up @@ -294,4 +295,65 @@ describe('#transformDeployment', () => {
})
})
})

describe('When a deployment has been stopped', () => {
test('Should provide expected status', () => {
expect(transformDeployment(deploymentStoppedFixture)).toEqual(
expect.objectContaining({
status: expect.objectContaining({
text: 'stopped'
})
})
)
})

test('Should provide expected transformation', () => {
expect(transformDeployment(deploymentStoppedFixture)).toEqual({
cpu: '2048',
deployedAt: '2024-01-22T09:53:04Z',
deploymentId: '2380b759-a76d-4f5b-8253-dd7b9545e161',
dockerImage:
'123456789.dkr.ecr.eu-west-2.amazonaws.com/cdp-portal-backend:0.105.0',
environment: 'infra-dev',
instanceCount: 1,
memory: '4096',
service: 'cdp-portal-backend',
status: {
classes: 'govuk-tag--grey',
hasFinished: false,
text: 'stopped'
},
tasks: {
'arn:aws:ecs:eu-west-2:506190012364:task/infra-dev-ecs-protected/d74cdc42ff1b44f49fe007e858567bfa':
{
cpu: '2048',
deployedAt: '2024-01-22T09:53:04Z',
deploymentId: '2380b759-a76d-4f5b-8253-dd7b9545e161',
dockerImage:
'123456789.dkr.ecr.eu-west-2.amazonaws.com/cdp-portal-backend:0.105.0',
ecsSvcDeploymentId: 'ecs-svc/2729145637959376974',
environment: 'infra-dev',
instanceCount: 1,
instanceTaskId:
'arn:aws:ecs:eu-west-2:506190012364:task/infra-dev-ecs-protected/d74cdc42ff1b44f49fe007e858567bfa',
memory: '4096',
service: 'cdp-portal-backend',
status: {
classes: 'govuk-tag--grey',
hasFinished: false,
text: 'stopped'
},
taskId:
'arn:aws:ecs:eu-west-2:506190012364:task-definition/cdp-portal-backend:121',
user: 'RoboCop',
userId: '1398fa86-98a2-4ee8-84bb-2468cc71d0ec',
version: '0.105.0'
}
},
user: 'RoboCop',
userId: '1398fa86-98a2-4ee8-84bb-2468cc71d0ec',
version: '0.105.0'
})
})
})
})

0 comments on commit e9a6f52

Please sign in to comment.