diff --git a/frontend/components/SearchBar.vue b/frontend/components/SearchBar.vue
index f5dfb89f3..f633a5d00 100644
--- a/frontend/components/SearchBar.vue
+++ b/frontend/components/SearchBar.vue
@@ -41,7 +41,7 @@
>
@@ -25,4 +32,30 @@ const organizationStore = useOrganizationStore();
await organizationStore.fetchAll();
const { organizations } = organizationStore;
+
+// const filterSections = ref([
+// {
+// title: "Popular tags",
+// tags: [
+// { id: 1, name: "Framework", selected: false },
+// { id: 2, name: "Library", selected: false },
+// { id: 3, name: "Tool", selected: false },
+// ],
+// },
+// ]);
+
+// const tabs = ref([
+// { id: "active", name: "Active" },
+// { id: "new", name: "New" },
+// { id: "private", name: "Private" },
+// ]);
+
+// const handleFilterChange = (filters: {
+// search: string;
+// activeTab: string;
+// selectedTags: number[];
+// }) => {
+// console.log("Filters changed:", filters);
+// // You can implement the filtering logic here later
+// };
diff --git a/frontend/test/components/filter/pageFilter.spec.ts b/frontend/test/components/filter/pageFilter.spec.ts
new file mode 100644
index 000000000..f77ef2a27
--- /dev/null
+++ b/frontend/test/components/filter/pageFilter.spec.ts
@@ -0,0 +1,45 @@
+import { render, screen } from "@testing-library/vue";
+import { describe, expect, it } from "vitest";
+import PageFilter from "~/components/page/PageFilter.vue";
+
+describe("PageFilter", () => {
+ const minimumProps = {
+ sections: [
+ {
+ title: "Popular Tags",
+ tags: [
+ { id: 1, name: "Tag 1", selected: false },
+ { id: 2, name: "Tag 2", selected: false },
+ { id: 3, name: "Tag 3", selected: false },
+ { id: 4, name: "Tag 4", selected: false },
+ ],
+ },
+ ],
+ tabs: [
+ { id: "tab1", name: "Tab 1" },
+ { id: "tab2", name: "Tab 2" },
+ { id: "tab3", name: "Tab 3" },
+ ],
+ };
+
+ it("should render", () => {
+ // Basic render test with minimum required props
+ render(PageFilter, {
+ props: minimumProps,
+ global: {
+ provide: {
+ useDevice: () => ({ isMacOS: false }),
+ },
+ stubs: {
+ Icon: true,
+ BtnTag: true,
+ TooltipBase: true,
+ },
+ },
+ });
+
+ expect(screen.getByText("Popular Tags")).toBeTruthy();
+ expect(screen.getByRole("heading", { name: "Filter" })).toBeTruthy();
+ expect(screen.getByLabelText("Search to filter")).toBeTruthy();
+ });
+});