15781: Uses 'contains' filter operator to search for properties.
[arvados-workbench2.git] / src / services / api / filter-builder.test.ts
index e365b331dd11e31493ac02eb689baaa91b0363af..a4e2b2290cc368afa1209eeef2a2f5e65b3e15c3 100644 (file)
@@ -36,6 +36,12 @@ describe("FilterBuilder", () => {
         ).toEqual(`["etag","ilike","%etagValue%"]`);
     });
 
+    it("should add 'contains' rule", () => {
+        expect(
+            filters.addContains("properties.someProp", "someValue").getFilters()
+        ).toEqual(`["properties.someProp","contains","someValue"]`);
+    });
+
     it("should add 'is_a' rule", () => {
         expect(
             filters.addIsA("etag", "etagValue").getFilters()
@@ -60,6 +66,12 @@ describe("FilterBuilder", () => {
         ).toEqual(`["etag","in",["etagValue1","etagValue2"]]`);
     });
 
+    it("should add 'not in' rule for set", () => {
+        expect(
+            filters.addNotIn("etag", ["etagValue1", "etagValue2"]).getFilters()
+        ).toEqual(`["etag","not in",["etagValue1","etagValue2"]]`);
+    });
+
     it("should add multiple rules", () => {
         expect(
             filters
@@ -75,4 +87,12 @@ describe("FilterBuilder", () => {
             .getFilters())
             .toEqual(`["myPrefix.etag","in",["etagValue1","etagValue2"]]`);
     });
+
+    it('should add full text search', () => {
+        expect(
+            new FilterBuilder()
+                .addFullTextSearch('my custom search')
+                .getFilters()
+        ).toEqual(`["any","ilike","%my%"],["any","ilike","%custom%"],["any","ilike","%search%"]`);
+    });
 });