@clickup/ent-framework
Version:
A PostgreSQL graph-database-alike library with microsharding and row-level security
55 lines (48 loc) • 1.32 kB
text/typescript
import { testCluster } from "../../pg/__tests__/test-utils";
import { PgSchema } from "../../pg/PgSchema";
import { BaseEnt } from "../BaseEnt";
import { True } from "../predicates/True";
import { QueryCache } from "../QueryCache";
import { AllowIf } from "../rules/AllowIf";
import { GLOBAL_SHARD } from "../ShardAffinity";
import { createVC } from "./test-utils";
class EntTestCompany extends BaseEnt(
testCluster,
new PgSchema(
'query-cache"company',
{
id: { type: String, autoInsert: "id_gen()" },
name: { type: String },
},
["name"],
),
) {
static override configure() {
return new this.Configuration({
shardAffinity: GLOBAL_SHARD,
privacyInferPrincipal: null,
privacyLoad: [new AllowIf(new True())],
privacyInsert: [],
});
}
}
test("simple deletion", async () => {
const vc = createVC();
const cache = vc.cache(QueryCache);
await cache.through(EntTestCompany, "select", "key", async () => "res1");
const res1 = await cache.through(
EntTestCompany,
"select",
"key",
async () => "other",
);
expect(res1).toEqual("res1");
cache.delete(EntTestCompany, ["select"]);
const res2 = await cache.through(
EntTestCompany,
"select",
"key",
async () => "other",
);
expect(res2).toEqual("other");
});