@@ -3,7 +3,7 @@ import type { TicketFieldObject } from "../data-types/TicketFieldObject";
3
3
import { buildAdvancedDynamicFilterParams } from "./LookupField" ;
4
4
5
5
describe ( "buildAdvancedDynamicFilterParams" , ( ) => {
6
- it ( 'returns correct dynamic filter value and matching field value for operator "matches"' , ( ) => {
6
+ it ( 'returns correct dynamic filter array for operator "matches"' , ( ) => {
7
7
const filter : LookupRelationshipFieldFilter = {
8
8
all : [
9
9
{
@@ -40,16 +40,12 @@ describe("buildAdvancedDynamicFilterParams", () => {
40
40
} ,
41
41
] ;
42
42
43
- const [ dynamicValue , fieldValue ] = buildAdvancedDynamicFilterParams (
44
- filter ,
45
- fields
46
- ) ;
43
+ const result = buildAdvancedDynamicFilterParams ( filter , fields ) ;
47
44
48
- expect ( dynamicValue ) . toBe ( "ticket_fields_12345" ) ;
49
- expect ( fieldValue ) . toBe ( "fooValue" ) ;
45
+ expect ( result ) . toEqual ( [ { key : "ticket_fields_12345" , value : "fooValue" } ] ) ;
50
46
} ) ;
51
47
52
- it ( 'returns correct dynamic filter value and matching field value for operator "not_matches" in any' , ( ) => {
48
+ it ( 'returns correct dynamic filter array for operator "not_matches" in any' , ( ) => {
53
49
const filter : LookupRelationshipFieldFilter = {
54
50
all : [ { field : "someField" , operator : "is" , value : "foo" } ] ,
55
51
any : [
@@ -85,16 +81,12 @@ describe("buildAdvancedDynamicFilterParams", () => {
85
81
} ,
86
82
] ;
87
83
88
- const [ dynamicValue , fieldValue ] = buildAdvancedDynamicFilterParams (
89
- filter ,
90
- fields
91
- ) ;
84
+ const result = buildAdvancedDynamicFilterParams ( filter , fields ) ;
92
85
93
- expect ( dynamicValue ) . toBe ( "ticket_fields_67890" ) ;
94
- expect ( fieldValue ) . toBe ( "barValue" ) ;
86
+ expect ( result ) . toEqual ( [ { key : "ticket_fields_67890" , value : "barValue" } ] ) ;
95
87
} ) ;
96
88
97
- it ( "returns [undefined, undefined] when no matching operator found" , ( ) => {
89
+ it ( "returns an empty array when no matching operator found" , ( ) => {
98
90
const filter : LookupRelationshipFieldFilter = {
99
91
all : [ { field : "someField" , operator : "is" , value : "foo" } ] ,
100
92
any : [ { field : "anotherField" , operator : "is" , value : "foo" } ] ,
@@ -124,13 +116,9 @@ describe("buildAdvancedDynamicFilterParams", () => {
124
116
} ,
125
117
] ;
126
118
127
- const [ dynamicValue , fieldValue ] = buildAdvancedDynamicFilterParams (
128
- filter ,
129
- fields
130
- ) ;
119
+ const result = buildAdvancedDynamicFilterParams ( filter , fields ) ;
131
120
132
- expect ( dynamicValue ) . toBeUndefined ( ) ;
133
- expect ( fieldValue ) . toBeUndefined ( ) ;
121
+ expect ( result ) . toEqual ( [ ] ) ;
134
122
} ) ;
135
123
136
124
it ( "returns [undefined, undefined] when filter is undefined" , ( ) => {
@@ -148,12 +136,57 @@ describe("buildAdvancedDynamicFilterParams", () => {
148
136
} ,
149
137
] ;
150
138
151
- const [ dynamicValue , fieldValue ] = buildAdvancedDynamicFilterParams (
152
- undefined ,
153
- fields
154
- ) ;
139
+ const result = buildAdvancedDynamicFilterParams ( undefined , fields ) ;
155
140
156
- expect ( dynamicValue ) . toBeUndefined ( ) ;
157
- expect ( fieldValue ) . toBeUndefined ( ) ;
141
+ expect ( result ) . toEqual ( [ ] ) ;
142
+ } ) ;
143
+
144
+ it ( "returns multiple filters if more than one matches" , ( ) => {
145
+ const filter : LookupRelationshipFieldFilter = {
146
+ all : [
147
+ {
148
+ field : "someField" ,
149
+ operator : "matches" ,
150
+ value : "ticket_fields_12345" ,
151
+ } ,
152
+ {
153
+ field : "otherField" ,
154
+ operator : "matches" ,
155
+ value : "ticket_fields_67890" ,
156
+ } ,
157
+ ] ,
158
+ any : [ ] ,
159
+ } ;
160
+ const fields : TicketFieldObject [ ] = [
161
+ {
162
+ id : 12345 ,
163
+ name : "Test Field 1" ,
164
+ value : "fooValue" ,
165
+ error : null ,
166
+ label : "Test Field 1" ,
167
+ required : false ,
168
+ description : "" ,
169
+ type : "text" ,
170
+ options : [ ] ,
171
+ } ,
172
+ {
173
+ id : 67890 ,
174
+ name : "Test Field 2" ,
175
+ value : "barValue" ,
176
+ error : null ,
177
+ label : "Test Field 2" ,
178
+ required : false ,
179
+ description : "" ,
180
+ type : "text" ,
181
+ options : [ ] ,
182
+ } ,
183
+ ] ;
184
+
185
+ const result = buildAdvancedDynamicFilterParams ( filter , fields ) ;
186
+
187
+ expect ( result ) . toEqual ( [
188
+ { key : "ticket_fields_12345" , value : "fooValue" } ,
189
+ { key : "ticket_fields_67890" , value : "barValue" } ,
190
+ ] ) ;
158
191
} ) ;
159
192
} ) ;
0 commit comments