Skip to content

Commit e15aef3

Browse files
committed
chore: convert bdd tests to e2e tests
1 parent 6900953 commit e15aef3

File tree

15 files changed

+180
-89
lines changed

15 files changed

+180
-89
lines changed

clients/client-acm/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
1212
"clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
1313
"extract:docs": "api-extractor run --local",
14-
"generate:client": "node ../../scripts/generate-clients/single-service --solo acm"
14+
"generate:client": "node ../../scripts/generate-clients/single-service --solo acm",
15+
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts"
1516
},
1617
"main": "./dist-cjs/index.js",
1718
"types": "./dist-types/index.d.ts",
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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(result).toBeDefined();
23+
expect(result.CertificateSummaryList).toBeDefined();
24+
expect(Array.isArray(result.CertificateSummaryList)).toBe(true);
25+
});
26+
});
27+
28+
describe("Error handling", () => {
29+
it("should handle ValidationException for invalid certificate ARN", async () => {
30+
await expect(
31+
client.describeCertificate({
32+
CertificateArn: "fake_arn",
33+
})
34+
).rejects.toThrow(
35+
expect.objectContaining({
36+
name: "ValidationException",
37+
})
38+
);
39+
});
40+
});
41+
});
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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
1212
"clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
1313
"extract:docs": "api-extractor run --local",
14-
"generate:client": "node ../../scripts/generate-clients/single-service --solo api-gateway"
14+
"generate:client": "node ../../scripts/generate-clients/single-service --solo api-gateway",
15+
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts"
1516
},
1617
"main": "./dist-cjs/index.js",
1718
"types": "./dist-types/index.d.ts",
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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(result).toBeDefined();
23+
expect(result.items).toBeDefined();
24+
expect(Array.isArray(result.items)).toBe(true);
25+
});
26+
});
27+
28+
describe("Error handling", () => {
29+
it("should handle NotFoundException for invalid REST API ID", async () => {
30+
await expect(
31+
client.getRestApi({
32+
restApiId: "fake_id",
33+
})
34+
).rejects.toThrow(
35+
expect.objectContaining({
36+
name: "NotFoundException",
37+
})
38+
);
39+
});
40+
});
41+
});
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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
1212
"clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
1313
"extract:docs": "api-extractor run --local",
14-
"generate:client": "node ../../scripts/generate-clients/single-service --solo cloudformation"
14+
"generate:client": "node ../../scripts/generate-clients/single-service --solo cloudformation",
15+
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts"
1516
},
1617
"main": "./dist-cjs/index.js",
1718
"types": "./dist-types/index.d.ts",
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 describing 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+
if (pageCount >= 3) break; // Get at least three pages
56+
}
57+
58+
expect(pageCount).toBeGreaterThanOrEqual(1);
59+
expect(lastPage).toBeDefined();
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+
});

features/acm/acm.feature

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)