@@ -175,20 +175,25 @@ export const multipleElementResultsStrategy = async <Actual, Expected>(
175175 let results : CompareResult < Actual > [ ] = [ ]
176176
177177 let multiRemoteActual : MultiRemoteValuesWithArray < Actual > | undefined
178+ let multiRemoteExpected : MultiRemoteValues < Expected > | undefined
178179 // --- Multi-remote $() single element case ---
179180 if ( multiRemoteSelector && ! Array . isArray ( expectedValues ) ) {
180- let multiRemoteExpected = expectedValues
181- if ( ! isMultiRemoteValues ( expectedValues , multiRemoteSelector . instances ) ) {
181+ multiRemoteActual = { }
182+
183+ // eslint-disable-next-line unicorn/prefer-ternary
184+ if ( isMultiRemoteValues ( expectedValues , multiRemoteSelector . instances ) ) {
185+ multiRemoteExpected = expectedValues
186+ } else {
182187 multiRemoteExpected = multiRemoteSelector . instances . reduce ( ( acc , instance ) => {
183188 acc [ instance ] = expectedValues as Expected
184189 return acc
185190 } , { } as MultiRemoteValues < Expected > )
186191 }
187192
188- if ( ! isMultiRemoteValues ( multiRemoteExpected , multiRemoteSelector . instances ) ) { throw new Error ( 'multiRemoteExpected is not a MultiRemoteValues' ) }
189-
190193 results = await Promise . all (
191194 Object . keys ( multiRemoteExpected ) . map ( async ( instance ) => {
195+ if ( ! multiRemoteExpected ) { throw new Error ( 'multiRemoteExpected is undefined' ) }
196+
192197 const expectValue = multiRemoteExpected [ instance ]
193198
194199 // TODO: non-existing multi-remote element should probably be a element with error and not to throw??
@@ -289,7 +294,7 @@ export const multipleElementResultsStrategy = async <Actual, Expected>(
289294 ? ! ( isNotEmpty && checkNotFn ( results ) )
290295 : isNotEmpty && checkFn ( results )
291296
292- return { subject, success, actual : multiRemoteActual ?? results . map ( ( { actual } ) => actual ) , context : { isSome } }
297+ return { subject, success, actual : multiRemoteActual ?? results . map ( ( { actual } ) => actual ) , context : { isSome } , expected : multiRemoteExpected }
293298}
294299
295300const isAllTrue = ( results : CompareResult < unknown > [ ] ) : boolean => results . every ( ( res ) => res . success === true )
0 commit comments