Skip to content

Commit 93444ae

Browse files
committed
chore: convert bdd tests to e2e tests
1 parent c7e71e8 commit 93444ae

File tree

163 files changed

+2019
-1177
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+2019
-1177
lines changed

clients/client-acm/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
"clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
1313
"extract:docs": "api-extractor run --local",
1414
"generate:client": "node ../../scripts/generate-clients/single-service --solo acm",
15+
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts",
16+
"test:e2e:watch": "yarn g:vitest watch -c vitest.config.e2e.mts",
1517
"test:index": "tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"
1618
},
1719
"main": "./dist-cjs/index.js",
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { getE2eTestResources } from "@aws-sdk/aws-util-test/src";
2+
import { ACM } from "@aws-sdk/client-acm";
3+
import { beforeAll, describe, expect, test as it } from "vitest";
4+
5+
describe("@aws-sdk/client-acm", () => {
6+
let client: ACM;
7+
let region: string;
8+
9+
beforeAll(async () => {
10+
const e2eTestResourcesEnv = await getE2eTestResources();
11+
Object.assign(process.env, e2eTestResourcesEnv);
12+
13+
region = process?.env?.AWS_SMOKE_TEST_REGION as string;
14+
15+
client = new ACM({ region });
16+
});
17+
18+
describe("Making a request to ACM service", () => {
19+
it("should successfully list certificates", async () => {
20+
const result = await client.listCertificates({});
21+
22+
expect(Array.isArray(result.CertificateSummaryList)).toBe(true);
23+
});
24+
});
25+
26+
describe("Error handling", () => {
27+
it("should handle ValidationException for invalid certificate ARN", async () => {
28+
await expect(
29+
client.describeCertificate({
30+
CertificateArn: "fake_arn",
31+
})
32+
).rejects.toThrow(
33+
expect.objectContaining({
34+
name: "ValidationException",
35+
})
36+
);
37+
});
38+
});
39+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { defineConfig } from "vitest/config";
2+
3+
export default defineConfig({
4+
test: {
5+
exclude: ["**/*.browser.e2e.spec.ts"],
6+
include: ["**/*.e2e.spec.ts"],
7+
environment: "node",
8+
},
9+
mode: "development",
10+
});

clients/client-api-gateway/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
"clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
1313
"extract:docs": "api-extractor run --local",
1414
"generate:client": "node ../../scripts/generate-clients/single-service --solo api-gateway",
15+
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts",
16+
"test:e2e:watch": "yarn g:vitest watch -c vitest.config.e2e.mts",
1517
"test:index": "tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"
1618
},
1719
"main": "./dist-cjs/index.js",
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { getE2eTestResources } from "@aws-sdk/aws-util-test/src";
2+
import { APIGateway } from "@aws-sdk/client-api-gateway";
3+
import { beforeAll, describe, expect, test as it } from "vitest";
4+
5+
describe("@aws-sdk/client-api-gateway", () => {
6+
let client: APIGateway;
7+
let region: string;
8+
9+
beforeAll(async () => {
10+
const e2eTestResourcesEnv = await getE2eTestResources();
11+
Object.assign(process.env, e2eTestResourcesEnv);
12+
13+
region = process?.env?.AWS_SMOKE_TEST_REGION as string;
14+
15+
client = new APIGateway({ region });
16+
});
17+
18+
describe("Making a request", () => {
19+
it("should successfully get REST APIs", async () => {
20+
const result = await client.getRestApis({});
21+
22+
expect(Array.isArray(result.items)).toBe(true);
23+
});
24+
});
25+
26+
describe("Error handling", () => {
27+
it("should handle NotFoundException for invalid REST API ID", async () => {
28+
await expect(
29+
client.getRestApi({
30+
restApiId: "fake_id",
31+
})
32+
).rejects.toThrow(
33+
expect.objectContaining({
34+
name: "NotFoundException",
35+
})
36+
);
37+
});
38+
});
39+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { defineConfig } from "vitest/config";
2+
3+
export default defineConfig({
4+
test: {
5+
exclude: ["**/*.browser.e2e.spec.ts"],
6+
include: ["**/*.e2e.spec.ts"],
7+
environment: "node",
8+
},
9+
mode: "development",
10+
});

clients/client-cloudformation/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
"clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
1313
"extract:docs": "api-extractor run --local",
1414
"generate:client": "node ../../scripts/generate-clients/single-service --solo cloudformation",
15+
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts",
16+
"test:e2e:watch": "yarn g:vitest watch -c vitest.config.e2e.mts",
1517
"test:index": "tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"
1618
},
1719
"main": "./dist-cjs/index.js",
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import { getE2eTestResources } from "@aws-sdk/aws-util-test/src";
2+
import { CloudFormation, paginateListStacks } from "@aws-sdk/client-cloudformation";
3+
import { beforeAll, describe, expect, test as it } from "vitest";
4+
5+
describe("@aws-sdk/client-cloudformation", () => {
6+
let client: CloudFormation;
7+
let region: string;
8+
9+
beforeAll(async () => {
10+
const e2eTestResourcesEnv = await getE2eTestResources();
11+
Object.assign(process.env, e2eTestResourcesEnv);
12+
13+
region = process?.env?.AWS_SMOKE_TEST_REGION as string;
14+
15+
client = new CloudFormation({ region });
16+
});
17+
18+
describe("Describing stacks", () => {
19+
it("should return stacks list when describe stacks is called", async () => {
20+
const result = await client.describeStacks({});
21+
22+
expect(result).toBeDefined();
23+
expect(result.Stacks).toBeDefined();
24+
expect(Array.isArray(result.Stacks)).toBe(true);
25+
});
26+
});
27+
28+
describe("Error handling", () => {
29+
it("should handle ValidationError for invalid stack creation", async () => {
30+
const templateBody = '{"Resources":{"member":{"Type":"AWS::SQS::Queue"}}}';
31+
32+
await expect(
33+
client.createStack({
34+
TemplateBody: templateBody,
35+
StackName: "", // Empty name should cause ValidationError
36+
})
37+
).rejects.toThrow(
38+
expect.objectContaining({
39+
name: "ValidationError",
40+
})
41+
);
42+
});
43+
});
44+
45+
describe("Paginating responses", () => {
46+
it("should paginate listStacks operation", async () => {
47+
const paginator = paginateListStacks({ client }, {});
48+
49+
let pageCount = 0;
50+
let lastPage;
51+
52+
for await (const page of paginator) {
53+
pageCount++;
54+
lastPage = page;
55+
}
56+
57+
expect(pageCount).toBeGreaterThanOrEqual(1);
58+
expect(lastPage).toBeDefined();
59+
expect(lastPage?.NextToken).toBeUndefined(); // The last page must not contain a marker
60+
});
61+
});
62+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { defineConfig } from "vitest/config";
2+
3+
export default defineConfig({
4+
test: {
5+
exclude: ["**/*.browser.e2e.spec.ts"],
6+
include: ["**/*.e2e.spec.ts"],
7+
environment: "node",
8+
},
9+
mode: "development",
10+
});

clients/client-cloudfront/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
"clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
1313
"extract:docs": "api-extractor run --local",
1414
"generate:client": "node ../../scripts/generate-clients/single-service --solo cloudfront",
15+
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts",
16+
"test:e2e:watch": "yarn g:vitest watch -c vitest.config.e2e.mts",
1517
"test:index": "tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"
1618
},
1719
"main": "./dist-cjs/index.js",

0 commit comments

Comments
 (0)