Convex-only Slice 1: clients talk to Convex, Flue is a private worker (#20)
This commit is contained in:
@@ -29,6 +29,17 @@ describe("project issue primitives", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("accepts an existing issue request without creating a duplicate", () => {
|
||||
const request = Effect.runSync(
|
||||
decodeProjectIssueRequest({
|
||||
issueId: "issue-1",
|
||||
kind: "existing",
|
||||
})
|
||||
);
|
||||
|
||||
expect(request).toEqual({ issueId: "issue-1", kind: "existing" });
|
||||
});
|
||||
|
||||
it("rejects invalid issue drafts before persistence", () => {
|
||||
const error = Effect.runSync(
|
||||
Effect.flip(
|
||||
|
||||
@@ -35,6 +35,11 @@ export const ProjectIssueDraft = Schema.Struct({
|
||||
});
|
||||
export type ProjectIssueDraft = typeof ProjectIssueDraft.Type;
|
||||
|
||||
export const ExistingProjectIssueRequest = Schema.Struct({
|
||||
issueId: ProjectIssueId,
|
||||
kind: Schema.Literal("existing"),
|
||||
});
|
||||
|
||||
export const ExplicitProjectIssueRequest = Schema.Struct({
|
||||
body: Schema.String,
|
||||
kind: Schema.Literal("explicit"),
|
||||
@@ -48,6 +53,7 @@ export const SignalProjectIssueRequest = Schema.Struct({
|
||||
});
|
||||
|
||||
export const ProjectIssueRequest = Schema.Union([
|
||||
ExistingProjectIssueRequest,
|
||||
ExplicitProjectIssueRequest,
|
||||
SignalProjectIssueRequest,
|
||||
]);
|
||||
@@ -186,7 +192,7 @@ export const decodeProjectIssueRequest = (
|
||||
() =>
|
||||
new ProjectIssueRequestError({
|
||||
message:
|
||||
"Use a signal request or an explicit request with projectId, title, and body",
|
||||
"Use an existing issue, signal request, or explicit request with projectId, title, and body",
|
||||
reason: "InvalidInput",
|
||||
})
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user