Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1dacfec

Browse files
authored
Merge pull request#521 from hookdeck/feat/sdk-api-spec-tests
feat: sdk api spec tests
2 parents1d9027d +01c451d commit1dacfec

File tree

97 files changed

+7734
-110
lines changed

Some content is hidden

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

97 files changed

+7734
-110
lines changed

‎.plans/spec-sdk-tests/01-ci-cd-integration.md‎

Lines changed: 512 additions & 0 deletions
Large diffs are not rendered by default.

‎.plans/spec-sdk-tests/02-coverage-reporting.md‎

Lines changed: 732 additions & 0 deletions
Large diffs are not rendered by default.

‎.plans/spec-sdk-tests/03-contributing-docs.md‎

Lines changed: 408 additions & 0 deletions
Large diffs are not rendered by default.

‎.plans/spec-sdk-tests/04-implementation-order.md‎

Lines changed: 475 additions & 0 deletions
Large diffs are not rendered by default.

‎.plans/spec-sdk-tests/README.md‎

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#OpenAPI Validation Test Suite - Implementation Plans
2+
3+
This directory contains detailed planning documents for the next phases of the OpenAPI validation test suite project.
4+
5+
##Current State (Completed)
6+
7+
-**Test Suite**: 147 comprehensive tests across 8 destination types
8+
-**Test Results**: 129 passing tests (87.8% pass rate)
9+
-**Coverage**: All destination types tested (Webhook, AWS SQS, RabbitMQ, Azure Service Bus, AWS S3, Hookdeck, AWS Kinesis, GCP Pub/Sub)
10+
-**Documentation**:`TEST_STATUS.md` with detailed results and analysis
11+
-**Issue Tracking**: 3 GitHub issues created for backend improvements
12+
-**Test Infrastructure**: Factory pattern, SDK client utilities, comprehensive test suite
13+
14+
##Next Phases
15+
16+
This plan directory outlines the roadmap for enhancing the test suite with production-ready features:
17+
18+
###1.[CI/CD Integration](./01-ci-cd-integration.md)
19+
Automate test execution in GitHub Actions to ensure continuous validation of API endpoints against the OpenAPI specification.
20+
21+
**Key Outcomes:**
22+
- Automated test runs on PRs and commits
23+
- Docker-based test environment
24+
- Test status badges
25+
- Failure notifications
26+
27+
###2.[Coverage Reporting](./02-coverage-reporting.md)
28+
Track and visualize which OpenAPI endpoints are tested, identify gaps, and enforce coverage thresholds.
29+
30+
**Key Outcomes:**
31+
- Automated coverage reports
32+
- Visual coverage dashboards
33+
- Coverage trend tracking
34+
- Minimum coverage enforcement
35+
36+
###3.[Contributing Documentation](./03-contributing-docs.md)
37+
Provide clear guidelines for developers to add new tests and understand the testing architecture.
38+
39+
**Key Outcomes:**
40+
- Updated CONTRIBUTING.md
41+
- Test development guide
42+
- Factory pattern documentation
43+
- Development workflow examples
44+
45+
###4.[Implementation Order](./04-implementation-order.md)
46+
Recommended sequence for implementing the above phases with effort estimates and success criteria.
47+
48+
**Key Outcomes:**
49+
- Prioritized roadmap
50+
- Dependency mapping
51+
- Effort estimates
52+
- Success metrics
53+
54+
##Plan Structure
55+
56+
Each planning document follows this structure:
57+
58+
1.**Overview** - Purpose and goals
59+
2.**Requirements** - Specific needs and constraints
60+
3.**Technical Approach** - Implementation details
61+
4.**Examples** - Code snippets and configurations
62+
5.**Acceptance Criteria** - Definition of done
63+
6.**Dependencies** - Related systems and prerequisites
64+
7.**Risks & Considerations** - Potential challenges
65+
66+
##How to Use These Plans
67+
68+
1.**Review** - Read through each plan to understand the scope
69+
2.**Prioritize** - Use`04-implementation-order.md` to sequence work
70+
3.**Implement** - Follow the technical approaches and examples
71+
4.**Validate** - Check against acceptance criteria
72+
5.**Iterate** - Update plans based on learnings
73+
74+
##Related Documentation
75+
76+
-[`/spec-sdk-tests/README.md`](../../spec-sdk-tests/README.md) - Test suite documentation
77+
-[`/spec-sdk-tests/TEST_STATUS.md`](../../spec-sdk-tests/TEST_STATUS.md) - Current test results
78+
-[`/docs/apis/openapi.yaml`](../../docs/apis/openapi.yaml) - OpenAPI specification
79+
-[`/CONTRIBUTING.md`](../../CONTRIBUTING.md) - General contribution guidelines
80+
81+
##Feedback and Updates
82+
83+
These plans are living documents. As implementation progresses:
84+
85+
- Update plans with new learnings
86+
- Add implementation notes
87+
- Document deviations from original plan
88+
- Capture best practices discovered
89+
90+
---
91+
92+
**Last Updated**: 2025-10-12
93+
**Status**: Ready for implementation
94+
**Owner**: Engineering Team

‎.speakeasy/workflow.lock‎

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
speakeasyVersion: 1.609.0
1+
speakeasyVersion: 1.636.3
22
sources:
33
Outpost API:
44
sourceNamespace: outpost-api
5-
sourceRevisionDigest: sha256:e09cf02de047cf6d007545274c477e2a90c561074b9de170d844d9ab9ffbbca6
6-
sourceBlobDigest: sha256:c405cfc4f2de092323a9dd68a09f7c08b563d363bce7463fc8b426d10acacf99
5+
sourceRevisionDigest: sha256:2fd0f3a228f7804a077a738eea8bdd8d0238c799b5d0c699113ab5b982c9c3f4
6+
sourceBlobDigest: sha256:84ea2c33aa27fd52d26243b2be5d1acdafc8b7c3c737f678cffdc62bbcac8c58
77
tags:
88
- latest
9-
- speakeasy-sdk-regen-1756922597
109
- 0.0.1
1110
targets:
1211
outpost-go:
@@ -26,10 +25,10 @@ targets:
2625
outpost-ts:
2726
source: Outpost API
2827
sourceNamespace: outpost-api
29-
sourceRevisionDigest: sha256:e09cf02de047cf6d007545274c477e2a90c561074b9de170d844d9ab9ffbbca6
30-
sourceBlobDigest: sha256:c405cfc4f2de092323a9dd68a09f7c08b563d363bce7463fc8b426d10acacf99
28+
sourceRevisionDigest: sha256:2fd0f3a228f7804a077a738eea8bdd8d0238c799b5d0c699113ab5b982c9c3f4
29+
sourceBlobDigest: sha256:84ea2c33aa27fd52d26243b2be5d1acdafc8b7c3c737f678cffdc62bbcac8c58
3130
codeSamplesNamespace: outpost-api-typescript-code-samples
32-
codeSamplesRevisionDigest: sha256:b1155400f3addb67547999bf99f4eb4f009470ab62329d57488f78843ff6f9b6
31+
codeSamplesRevisionDigest: sha256:d4eca43f53a3683f444aa9e98cc59cee0fbe9bfc00696753e1f9587b0955f9ab
3332
workflow:
3433
workflowVersion: 1.0.0
3534
speakeasyVersion: latest

‎docs/apis/openapi.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ components:
263263
key_template:
264264
type:string
265265
description:JMESPath expression for generating S3 object keys. Default is join('', [time.rfc3339_nano, '_', metadata."event-id", '.json']).
266-
example:"join('/', [time.year, time.month, time.day, metadata.\"event-id\", '.json'])"
266+
example:'join(''/'', [time.year, time.month, time.day, metadata."event-id",''.json''])'
267267
storage_class:
268268
type:string
269269
description:The storage class for the S3 objects (e.g., STANDARD, INTELLIGENT_TIERING, GLACIER, etc.). Defaults to "STANDARD".

‎sdks/outpost-typescript/.speakeasy/gen.lock‎

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
lockVersion: 2.0.0
22
id: edb58086-83b9-45a3-9095-52bf57a11009
33
management:
4-
docChecksum:f88900fa0dfdee97044181ff0fbb5027
4+
docChecksum:5ba70e6fd5c38bf6938a020a3ee4e211
55
docVersion: 0.0.1
6-
speakeasyVersion: 1.609.0
7-
generationVersion: 2.692.0
8-
releaseVersion: 0.4.0
9-
configChecksum:261fce5d39cf94a38cacbbd5e21d37f2
6+
speakeasyVersion: 1.636.3
7+
generationVersion: 2.723.11
8+
releaseVersion: 0.5.1
9+
configChecksum:f68ee8655bbd6462d87583a682258f8b
1010
repoURL: https://github.com/hookdeck/outpost.git
1111
repoSubDirectory: sdks/outpost-typescript
1212
installationURL: https://gitpkg.now.sh/hookdeck/outpost/sdks/outpost-typescript
@@ -16,11 +16,11 @@ features:
1616
additionalDependencies: 0.1.0
1717
additionalProperties: 0.1.1
1818
constsAndDefaults: 0.1.12
19-
core: 3.21.22
19+
core: 3.21.26
2020
defaultEnabledRetries: 0.1.0
2121
enumUnions: 0.1.0
2222
envVarSecurityUsage: 0.1.2
23-
globalSecurity: 2.82.13
23+
globalSecurity: 2.82.14
2424
globalSecurityCallbacks: 0.1.0
2525
globalServerURLs: 2.82.5
2626
globals: 2.82.2
@@ -31,7 +31,7 @@ features:
3131
responseFormat: 0.2.3
3232
retries: 2.83.0
3333
sdkHooks: 0.3.0
34-
unions: 2.85.11
34+
unions: 2.86.0
3535
generatedFiles:
3636
- .gitattributes
3737
- .npmignore
@@ -66,12 +66,16 @@ generatedFiles:
6666
- docs/models/components/destinationcreateawssqstype.md
6767
- docs/models/components/destinationcreateazureservicebus.md
6868
- docs/models/components/destinationcreateazureservicebustype.md
69+
- docs/models/components/destinationcreategcppubsub.md
70+
- docs/models/components/destinationcreategcppubsubtype.md
6971
- docs/models/components/destinationcreatehookdeck.md
7072
- docs/models/components/destinationcreatehookdecktype.md
7173
- docs/models/components/destinationcreaterabbitmq.md
7274
- docs/models/components/destinationcreaterabbitmqtype.md
7375
- docs/models/components/destinationcreatewebhook.md
7476
- docs/models/components/destinationcreatewebhooktype.md
77+
- docs/models/components/destinationgcppubsub.md
78+
- docs/models/components/destinationgcppubsubtype.md
7579
- docs/models/components/destinationhookdeck.md
7680
- docs/models/components/destinationhookdecktype.md
7781
- docs/models/components/destinationrabbitmq.md
@@ -83,12 +87,15 @@ generatedFiles:
8387
- docs/models/components/destinationupdateawskinesis.md
8488
- docs/models/components/destinationupdateawss3.md
8589
- docs/models/components/destinationupdateawssqs.md
90+
- docs/models/components/destinationupdategcppubsub.md
8691
- docs/models/components/destinationupdatehookdeck.md
8792
- docs/models/components/destinationupdaterabbitmq.md
8893
- docs/models/components/destinationupdatewebhook.md
8994
- docs/models/components/destinationwebhook.md
9095
- docs/models/components/destinationwebhooktype.md
9196
- docs/models/components/event.md
97+
- docs/models/components/gcppubsubconfig.md
98+
- docs/models/components/gcppubsubcredentials.md
9299
- docs/models/components/hookdeckcredentials.md
93100
- docs/models/components/portalredirect.md
94101
- docs/models/components/publishrequest.md
@@ -173,7 +180,6 @@ generatedFiles:
173180
- docs/sdks/destinations/README.md
174181
- docs/sdks/events/README.md
175182
- docs/sdks/health/README.md
176-
- docs/sdks/outpost/README.md
177183
- docs/sdks/publish/README.md
178184
- docs/sdks/schemas/README.md
179185
- docs/sdks/tenants/README.md
@@ -289,9 +295,11 @@ generatedFiles:
289295
- src/models/components/destinationcreateawss3.ts
290296
- src/models/components/destinationcreateawssqs.ts
291297
- src/models/components/destinationcreateazureservicebus.ts
298+
- src/models/components/destinationcreategcppubsub.ts
292299
- src/models/components/destinationcreatehookdeck.ts
293300
- src/models/components/destinationcreaterabbitmq.ts
294301
- src/models/components/destinationcreatewebhook.ts
302+
- src/models/components/destinationgcppubsub.ts
295303
- src/models/components/destinationhookdeck.ts
296304
- src/models/components/destinationrabbitmq.ts
297305
- src/models/components/destinationschemafield.ts
@@ -300,11 +308,14 @@ generatedFiles:
300308
- src/models/components/destinationupdateawskinesis.ts
301309
- src/models/components/destinationupdateawss3.ts
302310
- src/models/components/destinationupdateawssqs.ts
311+
- src/models/components/destinationupdategcppubsub.ts
303312
- src/models/components/destinationupdatehookdeck.ts
304313
- src/models/components/destinationupdaterabbitmq.ts
305314
- src/models/components/destinationupdatewebhook.ts
306315
- src/models/components/destinationwebhook.ts
307316
- src/models/components/event.ts
317+
- src/models/components/gcppubsubconfig.ts
318+
- src/models/components/gcppubsubcredentials.ts
308319
- src/models/components/hookdeckcredentials.ts
309320
- src/models/components/index.ts
310321
- src/models/components/portalredirect.ts
@@ -654,4 +665,3 @@ examples:
654665
application/json: {}
655666
examplesVersion: 1.0.2
656667
generatedTests: {}
657-
releaseNotes: "## Typescript SDK Changes Detected:\n* `outpost.events.list()`: \n * `request` **Changed**\n * `response` **Changed** **Breaking** :warning:\n* `outpost.events.listByDestination()`: \n * `request` **Changed**\n * `response` **Changed** **Breaking** :warning:\n* `outpost.destinations.list()`: \n * `request.type` **Changed**\n * `response.[].[awsS3]` **Added**\n* `outpost.destinations.create()`: \n * `request.destinationCreate.[awsS3]` **Added**\n * `response.[aws_s3]` **Added**\n* `outpost.destinations.get()`: `response.[aws_s3]` **Added**\n* `outpost.destinations.update()`: \n * `request.destinationUpdate.[destinationUpdateAwss3]` **Added**\n * `response.[destination].[awsS3]` **Added**\n* `outpost.destinations.enable()`: `response.[aws_s3]` **Added**\n* `outpost.destinations.disable()`: `response.[aws_s3]` **Added**\n* `outpost.schemas.get()`: \n * `request.type` **Changed**\n* `outpost.schemas.getDestinationTypeJwt()`: \n * `request.type` **Changed**\n"

‎sdks/outpost-typescript/.speakeasy/gen.yaml‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@ generation:
1616
auth:
1717
oAuth2ClientCredentialsEnabled:true
1818
oAuth2PasswordEnabled:true
19+
hoistGlobalSecurity:true
1920
tests:
2021
generateTests:true
2122
generateNewTests:false
2223
skipResponseBodyAssertions:false
2324
typescript:
24-
version:0.4.0
25+
version:0.5.1
26+
acceptHeaderEnum:true
2527
additionalDependencies:
2628
dependencies:{}
2729
devDependencies:{}
@@ -51,10 +53,12 @@ typescript:
5153
jsonpath:rfc9535
5254
maxMethodParams:0
5355
methodArguments:require-security-and-request
56+
modelPropertyCasing:camel
5457
moduleFormat:dual
5558
outputModelSuffix:output
5659
packageName:'@hookdeck/outpost-sdk'
5760
responseFormat:flat
61+
sseFlatResponse:false
5862
templateVersion:v2
5963
usageSDKInitImports:[]
6064
useIndexModules:true

‎sdks/outpost-typescript/README.md‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,7 @@ bun add @hookdeck/outpost-sdk
6464
###Yarn
6565

6666
```bash
67-
yarn add @hookdeck/outpost-sdk zod
68-
69-
# Note that Yarn does not install peer dependencies automatically. You will need
70-
# to install zod as shown above.
67+
yarn add @hookdeck/outpost-sdk
7168
```
7269

7370
>[!NOTE]
@@ -251,7 +248,6 @@ run();
251248

252249
*[check](docs/sdks/health/README.md#check) - Health Check
253250

254-
255251
###[publish](docs/sdks/publish/README.md)
256252

257253
*[event](docs/sdks/publish/README.md#event) - Publish Event
@@ -602,7 +598,7 @@ httpClient.addHook("requestError", (error, request) => {
602598
console.groupEnd();
603599
});
604600

605-
const sdk=newOutpost({httpClient });
601+
const sdk=newOutpost({ httpClient:httpClient });
606602
```
607603
<!-- End Custom HTTP Client [http-client]-->
608604

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp