feat(api): add CloudFront distributions to the cloud explorer
CI / checks (pull_request) Successful in 26m22s
CI / checks (pull_request) Successful in 26m22s
This commit is contained in:
@@ -17,6 +17,7 @@ import {awsKmsSchema} from '../cloud-spi/kmsSchema'
|
||||
import {awsStorageSchema, azureStorageSchema, gcpStorageSchema} from '../cloud-spi/storageSchema'
|
||||
import {awsSesEmailSchema} from '../cloud-spi/emailSchema'
|
||||
import {awsUserPoolsSchema} from '../cloud-spi/userPoolsSchema'
|
||||
import {awsCdnSchema} from '../cloud-spi/cdnSchema'
|
||||
import {awsAppConfigSchema} from '../cloud-spi/appConfigSchema'
|
||||
import {awsEventBridgeSchema} from '../cloud-spi/eventbridgeSchema'
|
||||
import {awsNotificationsSchema} from '../cloud-spi/notificationsSchema'
|
||||
@@ -769,6 +770,31 @@ describe('cloud schema routes', () => {
|
||||
expect(calls).toEqual([['us-east-1_x', 'c1', input]])
|
||||
})
|
||||
|
||||
test('enables a distribution and invalidates its paths through the CloudFront adapter', async () => {
|
||||
const calls: unknown[] = []
|
||||
const app = appWithRoutes([mockAdapter('aws', {
|
||||
service: 'cdn',
|
||||
schema: awsCdnSchema,
|
||||
setDistributionEnabled: async (id, enabled) => {
|
||||
calls.push(['enabled', id, enabled])
|
||||
return {id, name: 'd.cloudfront.net', cloud: 'aws', service: 'cdn', type: 'distribution', region: null, createdAt: null, metadata: {enabled}}
|
||||
},
|
||||
createDistributionInvalidation: async (id, paths) => {
|
||||
calls.push(['invalidate', id, paths])
|
||||
return {id: 'I1', status: 'Completed', createdAt: null, paths}
|
||||
},
|
||||
})])
|
||||
const json = (method: string, body: unknown) => ({method, headers: {'content-type': 'application/json'}, body: JSON.stringify(body)})
|
||||
const base = '/api/clouds/aws/services/cdn/resources/E123'
|
||||
|
||||
const enabled = await app.request(`${base}/enabled`, json('PUT', {enabled: false}))
|
||||
expect(enabled.status).toBe(200)
|
||||
expect((await enabled.json()).metadata.enabled).toBe(false)
|
||||
const invalidated = await app.request(`${base}/invalidations`, json('POST', {paths: ['/*']}))
|
||||
expect(invalidated.status).toBe(201)
|
||||
expect(calls).toEqual([['enabled', 'E123', false], ['invalidate', 'E123', ['/*']]])
|
||||
})
|
||||
|
||||
test('clears the SES mailbox through the email adapter', async () => {
|
||||
let cleared = false
|
||||
const app = appWithRoutes([mockAdapter('aws', {
|
||||
|
||||
Reference in New Issue
Block a user