Skip to content

Commit 7f00422

Browse files
[WEB-6816] chore: added support for pql filters (#39)
* chore: pql filter support for work item list with tests * fix: test cases * fix: test cases Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: test cases * 0.2.10 --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent ebeb2f8 commit 7f00422

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@makeplane/plane-node-sdk",
3-
"version": "0.2.9",
3+
"version": "0.2.10",
44
"description": "Node SDK for Plane",
55
"author": "Plane <engineering@plane.so>",
66
"repository": {

src/models/WorkItem.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export interface ListWorkItemsParams {
8787
assignee?: string;
8888
limit?: number;
8989
offset?: number;
90+
pql?: string;
9091
}
9192

9293
export interface WorkItemActivity {

tests/unit/work-items/work-items.test.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,38 @@ describe(!!(config.workspaceSlug && config.projectId && config.userId), "Work It
8282
expect(foundWorkItem).toBeDefined();
8383
});
8484

85+
it("should list work items with pql filter", async () => {
86+
const name = randomizeName();
87+
let pqlWorkItem: WorkItem | undefined;
88+
89+
try {
90+
pqlWorkItem = await client.workItems.create(workspaceSlug, projectId, {
91+
name,
92+
priority: "high",
93+
});
94+
95+
const filtered = await client.workItems.list(workspaceSlug, projectId, {
96+
pql: 'priority IN ("high")',
97+
});
98+
99+
expect(filtered).toBeDefined();
100+
expect(Array.isArray(filtered.results)).toBe(true);
101+
expect(filtered.results.length).toBeGreaterThan(0);
102+
expect(filtered.results.find((wi) => wi.id === pqlWorkItem!.id)).toBeDefined();
103+
for (const wi of filtered.results) {
104+
expect(wi.priority).toBe("high");
105+
}
106+
} finally {
107+
if (pqlWorkItem?.id) {
108+
try {
109+
await client.workItems.delete(workspaceSlug, projectId, pqlWorkItem.id);
110+
} catch {
111+
// Best-effort cleanup to avoid polluting subsequent test runs.
112+
}
113+
}
114+
}
115+
});
116+
85117
it("should retrieve work item by identifier", async () => {
86118
const project = await client.projects.retrieve(workspaceSlug, projectId);
87119
const workItemByIdentifier = await client.workItems.retrieveByIdentifier(

0 commit comments

Comments
 (0)