|
| 1 | +const path = require('path') |
| 2 | +const axios = require('axios') |
| 3 | +const { generateId, getServerlessSdk } = require('./lib/utils') |
| 4 | + |
| 5 | +const appId = process.env.TENCENT_APP_ID |
| 6 | +const credentials = { |
| 7 | + tencent: { |
| 8 | + SecretId: process.env.TENCENT_SECRET_ID, |
| 9 | + SecretKey: process.env.TENCENT_SECRET_KEY |
| 10 | + } |
| 11 | +} |
| 12 | + |
| 13 | +const instanceYaml = { |
| 14 | + org: 'orgDemo', |
| 15 | + app: 'appDemo', |
| 16 | + component: 'cos@dev', |
| 17 | + name: `cos-integration-tests-${generateId()}`, |
| 18 | + stage: 'dev', |
| 19 | + inputs: { |
| 20 | + src: { |
| 21 | + src: path.join(__dirname, '..', 'example/src') |
| 22 | + }, |
| 23 | + bucket: 'cos-integration-test', |
| 24 | + region: 'ap-guangzhou', |
| 25 | + acl: { |
| 26 | + permissions: 'public-read' |
| 27 | + } |
| 28 | + } |
| 29 | +} |
| 30 | + |
| 31 | +const sdk = getServerlessSdk(instanceYaml.org, appId) |
| 32 | + |
| 33 | +describe('COS', () => { |
| 34 | + it('deploy cos', async () => { |
| 35 | + const instance = await sdk.deploy(instanceYaml, credentials) |
| 36 | + |
| 37 | + expect(instance).toBeDefined() |
| 38 | + expect(instance.instanceName).toEqual(instanceYaml.name) |
| 39 | + expect(instance.outputs.url).toBeDefined() |
| 40 | + expect(instance.outputs.region).toEqual(instanceYaml.inputs.region) |
| 41 | + // exist page |
| 42 | + const { data } = await axios.get(`${instance.outputs.url}/index.html`) |
| 43 | + expect(data).toContain('Serverless') |
| 44 | + }) |
| 45 | + |
| 46 | + it('deploy website', async () => { |
| 47 | + instanceYaml.inputs.website = true |
| 48 | + const instance = await sdk.deploy(instanceYaml, credentials) |
| 49 | + |
| 50 | + expect(instance).toBeDefined() |
| 51 | + expect(instance.instanceName).toEqual(instanceYaml.name) |
| 52 | + expect(instance.outputs.website).toBeDefined() |
| 53 | + expect(instance.outputs.region).toEqual(instanceYaml.inputs.region) |
| 54 | + // exist page |
| 55 | + const { data } = await axios.get(instance.outputs.website) |
| 56 | + expect(data).toContain('Serverless') |
| 57 | + }) |
| 58 | + |
| 59 | + it('remove success', async () => { |
| 60 | + await sdk.remove(instanceYaml, credentials) |
| 61 | + const result = await sdk.getInstance( |
| 62 | + instanceYaml.org, |
| 63 | + instanceYaml.stage, |
| 64 | + instanceYaml.app, |
| 65 | + instanceYaml.name |
| 66 | + ) |
| 67 | + |
| 68 | + expect(result.instance.instanceStatus).toEqual('inactive') |
| 69 | + }) |
| 70 | +}) |
0 commit comments