Skip to content

Commit

Permalink
Add ttl as public field for Document (#254)
Browse files Browse the repository at this point in the history
  • Loading branch information
ptpaterson authored May 6, 2024
1 parent cf6929c commit 90499c5
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 5 deletions.
16 changes: 14 additions & 2 deletions __tests__/integration/doc.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,23 @@ describe("querying for doc types", () => {
expect(result.data.module).toBeInstanceOf(Module);
expect(result.data.document).toBeInstanceOf(Document);
expect(result.data.document.documentReference).toBeInstanceOf(
DocumentReference
DocumentReference,
);
expect(result.data.document.namedDocumentReference).toBeInstanceOf(
NamedDocumentReference
NamedDocumentReference,
);
expect(result.data.namedDocument).toBeInstanceOf(NamedDocument);
});

it("can set and read ttl", async () => {
const queryBuilder = fql`${testDoc}`;
const result = await client.query<Document>(queryBuilder);

expect(result.data.ttl).toBeUndefined();

const queryBuilderUpdate = fql`${testDoc}.update({ ttl: Time.now().add(1, "day") })`;
const resultUpdate = await client.query<Document>(queryBuilderUpdate);

expect(resultUpdate.data.ttl).toBeInstanceOf(TimeStub);
});
});
18 changes: 18 additions & 0 deletions __tests__/unit/doc.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,24 @@ describe("Document", () => {
expect(doc.ts.isoString).toBe("2023-10-16T00:00:00Z");
});

it("can access ttl", () => {
const doc = new Document({
coll: new Module("User"),
id: "1234",
ts: TimeStub.from("2023-03-09T00:00:00Z"),
});

const doc_w_ttl = new Document({
coll: new Module("User"),
id: "1234",
ts: TimeStub.from("2023-03-09T00:00:00Z"),
ttl: TimeStub.from("2023-03-10T00:00:00Z"),
});

expect(doc.ttl).toBeUndefined();
expect(doc_w_ttl.ttl).toBeInstanceOf(TimeStub);
});

it("can access user data", () => {
const doc = new Document({
coll: new Module("User"),
Expand Down
7 changes: 4 additions & 3 deletions src/values/doc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ export class DocumentReference {
*/
export class Document extends DocumentReference {
readonly ts: TimeStub;
readonly ttl?: TimeStub;

constructor(obj: {
coll: Module | string;
Expand All @@ -73,8 +74,8 @@ export class Document extends DocumentReference {
Object.assign(this, rest);
}

toObject(): { coll: Module; id: string; ts: TimeStub } {
return { ...this } as { coll: Module; id: string; ts: TimeStub };
toObject(): { coll: Module; id: string; ts: TimeStub; ttl?: TimeStub } {
return { ...this };
}
}

Expand Down Expand Up @@ -146,7 +147,7 @@ export class NamedDocumentReference {
* ```
*/
export class NamedDocument<
T extends QueryValueObject = Record<string, never>
T extends QueryValueObject = Record<string, never>,
> extends NamedDocumentReference {
readonly ts: TimeStub;
readonly data: T;
Expand Down

0 comments on commit 90499c5

Please sign in to comment.