@@ -7,15 +7,19 @@ import { Vis } from '../../../visualizations/public';
7
7
import {
8
8
buildPipelineFromAugmentVisSavedObjs ,
9
9
getAugmentVisSavedObjs ,
10
+ getAnyErrors ,
10
11
isEligibleForVisLayers ,
11
12
} from './utils' ;
12
- import { VisLayerTypes , ISavedAugmentVis , VisLayerExpressionFn } from '../types' ;
13
13
import {
14
14
createSavedAugmentVisLoader ,
15
15
SavedObjectOpenSearchDashboardsServicesWithAugmentVis ,
16
16
getMockAugmentVisSavedObjectClient ,
17
17
generateAugmentVisSavedObject ,
18
- } from '../saved_augment_vis' ;
18
+ ISavedAugmentVis ,
19
+ VisLayerExpressionFn ,
20
+ VisLayerTypes ,
21
+ } from '../' ;
22
+ import { generateVisLayer } from './' ;
19
23
20
24
describe ( 'utils' , ( ) => {
21
25
// TODO: redo / update this test suite when eligibility is finalized.
@@ -129,4 +133,67 @@ describe('utils', () => {
129
133
expect ( str ) . toEqual ( `fn-1 arg1="value-1"\n| fn-2 arg2="value-2"` ) ;
130
134
} ) ;
131
135
} ) ;
136
+
137
+ describe ( 'getAnyErrors' , ( ) => {
138
+ const noErrorLayer1 = generateVisLayer ( VisLayerTypes . PointInTimeEvents , false ) ;
139
+ const noErrorLayer2 = generateVisLayer ( VisLayerTypes . PointInTimeEvents , false ) ;
140
+ const errorLayer1 = generateVisLayer ( VisLayerTypes . PointInTimeEvents , true , 'uh-oh!' , {
141
+ type : 'resource-type-1' ,
142
+ id : '1234' ,
143
+ name : 'resource-1' ,
144
+ } ) ;
145
+ const errorLayer2 = generateVisLayer (
146
+ VisLayerTypes . PointInTimeEvents ,
147
+ true ,
148
+ 'oh no something terrible has happened :(' ,
149
+ {
150
+ type : 'resource-type-2' ,
151
+ id : '5678' ,
152
+ name : 'resource-2' ,
153
+ }
154
+ ) ;
155
+ const errorLayer3 = generateVisLayer ( VisLayerTypes . PointInTimeEvents , true , 'oops!' , {
156
+ type : 'resource-type-1' ,
157
+ id : 'abcd' ,
158
+ name : 'resource-3' ,
159
+ } ) ;
160
+
161
+ it ( 'empty array - returns undefined' , async ( ) => {
162
+ const err = getAnyErrors ( [ ] , 'title-vis-title' ) ;
163
+ expect ( err ) . toEqual ( undefined ) ;
164
+ } ) ;
165
+ it ( 'single VisLayer no errors - returns undefined' , async ( ) => {
166
+ const err = getAnyErrors ( [ noErrorLayer1 ] , 'test-vis-title' ) ;
167
+ expect ( err ) . toEqual ( undefined ) ;
168
+ } ) ;
169
+ it ( 'multiple VisLayers no errors - returns undefined' , async ( ) => {
170
+ const err = getAnyErrors ( [ noErrorLayer1 , noErrorLayer2 ] , 'test-vis-title' ) ;
171
+ expect ( err ) . toEqual ( undefined ) ;
172
+ } ) ;
173
+ it ( 'single VisLayer with error - returns formatted error' , async ( ) => {
174
+ const err = getAnyErrors ( [ errorLayer1 ] , 'test-vis-title' ) ;
175
+ expect ( err ) . not . toEqual ( undefined ) ;
176
+ expect ( err ?. stack ) . toStrictEqual ( `-----resource-type-1-----\nID: 1234\nMessage: "uh-oh!"` ) ;
177
+ } ) ;
178
+ it ( 'multiple VisLayers with errors - returns formatted error' , async ( ) => {
179
+ const err = getAnyErrors ( [ errorLayer1 , errorLayer2 ] , 'test-vis-title' ) ;
180
+ expect ( err ) . not . toEqual ( undefined ) ;
181
+ expect ( err ?. stack ) . toStrictEqual (
182
+ `-----resource-type-1-----\nID: 1234\nMessage: "uh-oh!"\n\n\n` +
183
+ `-----resource-type-2-----\nID: 5678\nMessage: "oh no something terrible has happened :("`
184
+ ) ;
185
+ } ) ;
186
+ it ( 'multiple VisLayers with errors of same type - returns formatted error' , async ( ) => {
187
+ const err = getAnyErrors ( [ errorLayer1 , errorLayer3 ] , 'test-vis-title' ) ;
188
+ expect ( err ) . not . toEqual ( undefined ) ;
189
+ expect ( err ?. stack ) . toStrictEqual (
190
+ `-----resource-type-1-----\nID: 1234\nMessage: "uh-oh!"\n\n` + `ID: abcd\nMessage: "oops!"`
191
+ ) ;
192
+ } ) ;
193
+ it ( 'VisLayers with and without error - returns formatted error' , async ( ) => {
194
+ const err = getAnyErrors ( [ noErrorLayer1 , errorLayer1 ] , 'test-vis-title' ) ;
195
+ expect ( err ) . not . toEqual ( undefined ) ;
196
+ expect ( err ?. stack ) . toStrictEqual ( `-----resource-type-1-----\nID: 1234\nMessage: "uh-oh!"` ) ;
197
+ } ) ;
198
+ } ) ;
132
199
} ) ;
0 commit comments