@@ -12,13 +12,19 @@ const params = {
1212describe ( 'Power BI DAX result handling' , ( ) => {
1313 it ( 'preserves partial rows and identifies errors at every documented scope' , async ( ) => {
1414 const response = jsonResponse ( {
15- error : { code : 'ResponseLimit' , message : 'Limited result.' } ,
15+ error : {
16+ 'pbi.error' : { code : 'ResponseLimit' , message : 'Limited result.' } ,
17+ } ,
1618 results : [
1719 {
18- error : { code : 'QueryLimit' , message : 'One result table allowed.' } ,
20+ error : {
21+ 'pbi.error' : { code : 'QueryLimit' , message : 'One result table allowed.' } ,
22+ } ,
1923 tables : [
2024 {
21- error : { code : 'TableLimit' , message : 'More than the allowed rows.' } ,
25+ error : {
26+ 'pbi.error' : { code : 'TableLimit' , message : 'More than the allowed rows.' } ,
27+ } ,
2228 rows : [ { 'Sales[Amount]' : 0 , '[Blank]' : null } ] ,
2329 } ,
2430 ] ,
@@ -103,12 +109,21 @@ describe('Power BI DAX result handling', () => {
103109 } )
104110 } )
105111
106- it ( 'keeps nested Microsoft error details when the direct message is absent' , async ( ) => {
112+ it . each ( [ 'direct' , 'wrapped' ] ) ( 'normalizes %s Microsoft error diagnostics' , async ( kind ) => {
113+ const details =
114+ kind === 'direct'
115+ ? { diagnostic : 'DAX query failure' }
116+ : [
117+ { code : 'AnalysisServicesErrorCode' , detail : { type : 1 , value : '3238920194' } } ,
118+ { code : 'DetailsMessage' , detail : { type : 1 , value : 'The DAX query is invalid.' } } ,
119+ ]
107120 const result = await powerbiExecuteQueryTool . transformResponse ! (
108121 jsonResponse ( {
109122 error : {
110123 code : 'DatasetExecuteQueriesError' ,
111- details : { diagnostic : 'DAX query failure' } ,
124+ ...( kind === 'direct'
125+ ? { details }
126+ : { 'pbi.error' : { code : 'DatasetExecuteQueriesError' , details } } ) ,
112127 } ,
113128 } ) ,
114129 params
@@ -118,10 +133,13 @@ describe('Power BI DAX result handling', () => {
118133 {
119134 scope : 'response' ,
120135 code : 'DatasetExecuteQueriesError' ,
121- message : null ,
122- details : { diagnostic : 'DAX query failure' } ,
136+ message : kind === 'direct' ? null : 'The DAX query is invalid.' ,
137+ details,
123138 } ,
124139 ] )
140+ expect ( result . error ) . toBe (
141+ kind === 'direct' ? 'DatasetExecuteQueriesError' : 'The DAX query is invalid.'
142+ )
125143 } )
126144
127145 it . each ( [ 'declared' , 'streamed' ] ) (
0 commit comments