Typescript Mocha和AWS测试

问题描述 投票:0回答:1

这是我第一次尝试摩卡/柴。我有一个IaC项目,在启动之前,我想在执行工作之前验证存储在Secrets Manager中的秘密是否确实存在。

当我运行此程序时。我只是得到输出0 passing (0ms)

代码:该代码获取跨区域的凭据,然后如果该秘密因不比较expect.to.equal中的字符串而退出,则应进行比较>

import * as awsSdk from 'aws-sdk';
import { expect } from 'chai';
import { secretValues } from './config';

// Assume Role
const sts = new awsSdk.STS();

// Function to Update Credentials
const getCrossAccountCredentials = async (account: string, role: string) =>
  new Promise((resolve, reject) => {
    const timestamp = new Date().getTime();
    const params = {
      RoleArn: `arn:aws:iam::${account}:role/${role}`,
      RoleSessionName: `sts-session-${timestamp}`
    };
    sts.assumeRole(params, (err, data) => {
      if (err) reject(err);
      else {
        resolve({
          accessKeyId: data.Credentials.AccessKeyId,
          secretAccessKey: data.Credentials.SecretAccessKey,
          sessionToken: data.Credentials.SessionToken
        });
      }
    });
  });

// Run Test for Secrets Manager
describe('# Secrets Manager Tests:', () => {
    secretValues.map(async dir => {
        // Configure the AWS SDK with the correct region
        awsSdk.config.update({
        region: dir.region
        });

        // Get Assume Role
        const accessparams = await getCrossAccountCredentials(
        dir.account,
        dir.role
        );

        // Initialize SecretsManager Client
        const sm = new awsSdk.SecretsManager(accessparams);

        // Set Params for Describe Secret
        const params = {
        SecretId: `ServiceAccounts/${dir.name}/admin`
        };

        // Run Each Account
        it('Should exists in AWS', async ()  => {
            // Describe the Secret
            sm.describeSecret(params, (err, data) => {
                if (err) {
                    throw err;
                }
                else {
                    expect(`${data.Name}`).to.equal(`ServiceAccounts/${dir.name}/admin`);
                }
            });
        }); 
    }); 
}); 

预期的行为:

Secrets Manager Tests:
3 of 3 passing

这是我第一次尝试摩卡/柴。我有一个IaC项目,在启动之前,我想在执行工作之前验证存储在Secrets Manager中的秘密是否确实存在。当我...

typescript mocha chai
1个回答
0
投票

我知道了我的问题(尽管我仍然不完全了解)

© www.soinside.com 2019 - 2024. All rights reserved.