Skip to content

Commit 44367cd

Browse files
committed
test(serverless): avoid pinning header validation order
1 parent 7cff899 commit 44367cd

2 files changed

Lines changed: 15 additions & 7 deletions

File tree

rivetkit-rust/packages/rivetkit-core/src/serverless.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,8 +483,15 @@ fn route_path(base_path: &str, url: &str) -> Result<String> {
483483
}
484484

485485
fn parse_start_headers(headers: &HashMap<String, String>) -> Result<StartHeaders> {
486-
let pool_name = required_header(headers, "x-rivet-pool-name")
487-
.or_else(|_| required_header(headers, "x-rivet-runner-name"))?;
486+
let pool_name = match optional_header(headers, "x-rivet-pool-name") {
487+
Some(pool_name) => pool_name,
488+
None => optional_header(headers, "x-rivet-runner-name").ok_or_else(|| {
489+
InvalidRequest {
490+
reason: "x-rivet-pool-name header is required".to_string(),
491+
}
492+
.build()
493+
})?,
494+
};
488495

489496
Ok(StartHeaders {
490497
endpoint: required_header(headers, "x-rivet-endpoint")?,

rivetkit-typescript/packages/rivetkit/tests/driver/serverless-handler.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,15 @@ describeDriverMatrix(
169169
);
170170

171171
expect(response.status).toBe(400);
172-
expect(await response.json()).toMatchObject({
172+
const body = await response.json();
173+
expect(body).toMatchObject({
173174
group: "request",
174175
code: "invalid",
175-
metadata: {
176-
reason: "x-rivet-endpoint header is required",
177-
},
176+
});
177+
expect(body.metadata?.reason).toMatch(
178+
/^x-rivet-(endpoint|pool-name|namespace-name) header is required$/,
179+
);
178180
});
179-
});
180181

181182
test("accepts a serverless start payload and streams pings", async (c) => {
182183
const { client, namespace } = await setupDriverTest(c, driverTestConfig);

0 commit comments

Comments
 (0)