@@ -187,11 +187,19 @@ describe('helpers/appHelper', () => {
187187 expect ( sources . currentServer ) . toBe ( '1' ) ;
188188 } ) ;
189189
190+ test ( 'buildSources fills blank season and episode for series without params' , ( ) => {
191+ const sources = helper . buildSources ( 'tt-series' , 'series' ) ;
192+ expect ( sources . server1Src ) . toBe ( 'https://domain/embed/tv?imdb=tt-series&season=&episode=' ) ;
193+ expect ( sources . server2Src ) . toBe ( '' ) ;
194+ expect ( sources . currentServer ) . toBe ( '1' ) ;
195+ expect ( sources . iframeSrc ) . toBe ( 'https://domain/embed/tv?imdb=tt-series&season=&episode=' ) ;
196+ } ) ;
197+
190198 test ( 'buildSources prefers MULTI_DOMAIN sources when configured' , ( ) => {
191199 jest . isolateModules ( ( ) => {
192200 mockAppConfig . MULTI_DOMAIN = 'multi.example' ;
193201 const mod = require ( './appHelper' ) ;
194- const seriesSources = mod . buildSources ( 'tt2' , 'series' , '1' , '3' ) ;
202+ const seriesSources = mod . buildSources ( 'tt2' , 'series' , { season : '1' , episode : '3' } ) ;
195203 expect ( seriesSources . server2Src ) . toBe ( 'https://multi.example/?video_id=tt2&s=1&e=3' ) ;
196204 expect ( seriesSources . currentServer ) . toBe ( '2' ) ;
197205 const movieSources = mod . buildSources ( 'tt2' , 'movie' ) ;
@@ -201,6 +209,35 @@ describe('helpers/appHelper', () => {
201209 mockAppConfig . MULTI_DOMAIN = '' ;
202210 } ) ;
203211
212+ test ( 'buildSources honours preferred server when provided' , ( ) => {
213+ jest . isolateModules ( ( ) => {
214+ mockAppConfig . MULTI_DOMAIN = 'multi.example' ;
215+ const mod = require ( './appHelper' ) ;
216+ const movieSources = mod . buildSources ( 'tt2' , 'movie' , { preferredServer : '1' } ) ;
217+ expect ( movieSources . currentServer ) . toBe ( '1' ) ;
218+ expect ( movieSources . iframeSrc ) . toBe ( 'https://domain/embed/movie/tt2' ) ;
219+ const seriesSources = mod . buildSources ( 'tt2' , 'series' , {
220+ season : '2' ,
221+ episode : '5' ,
222+ preferredServer : '1' ,
223+ } ) ;
224+ expect ( seriesSources . currentServer ) . toBe ( '1' ) ;
225+ expect ( seriesSources . iframeSrc ) . toBe ( 'https://domain/embed/tv?imdb=tt2&season=2&episode=5' ) ;
226+ } ) ;
227+ mockAppConfig . MULTI_DOMAIN = '' ;
228+ } ) ;
229+
230+ test ( 'buildSources keeps preferred server 2 when provided' , ( ) => {
231+ jest . isolateModules ( ( ) => {
232+ mockAppConfig . MULTI_DOMAIN = 'multi.example' ;
233+ const mod = require ( './appHelper' ) ;
234+ const movieSources = mod . buildSources ( 'tt2' , 'movie' , { preferredServer : '2' } ) ;
235+ expect ( movieSources . currentServer ) . toBe ( '2' ) ;
236+ expect ( movieSources . iframeSrc ) . toBe ( 'https://multi.example/?video_id=tt2' ) ;
237+ } ) ;
238+ mockAppConfig . MULTI_DOMAIN = '' ;
239+ } ) ;
240+
204241 test ( 'useAuth is false when no mongo uri' , ( ) => {
205242 expect ( helper . useAuth ) . toBe ( false ) ;
206243 } ) ;
0 commit comments