@@ -325,82 +325,107 @@ func TestService_SetListIsFavorite(t *testing.T) {
325
325
{bundle .RelationKeyId : pbtypes .String ("obj2" ), bundle .RelationKeySpaceId : pbtypes .String (spaceId )},
326
326
{bundle .RelationKeyId : pbtypes .String ("obj3" ), bundle .RelationKeySpaceId : pbtypes .String (spaceId )},
327
327
}
328
- homeId = "home"
328
+ homeId = "home"
329
+ widgetId = "widget"
329
330
)
330
331
331
332
t .Run ("no error on favoriting" , func (t * testing.T ) {
332
333
// given
333
334
fx := newFixture (t )
334
- sb := smarttest .New (homeId )
335
- sb .AddBlock (simple .New (& model.Block {Id : homeId , ChildrenIds : []string {}}))
335
+ home := smarttest .New (homeId )
336
+ home .AddBlock (simple .New (& model.Block {Id : homeId , ChildrenIds : []string {}}))
337
+ widget := smarttest .New (widgetId )
338
+ widget .AddBlock (simple .New (& model.Block {Id : widgetId , ChildrenIds : []string {}}))
336
339
fx .store .AddObjects (t , spaceId , objects )
337
- fx .space .EXPECT ().DerivedIDs ().Return (threads.DerivedSmartblockIds {Home : homeId })
340
+ fx .space .EXPECT ().DerivedIDs ().Return (threads.DerivedSmartblockIds {Home : homeId , Widgets : widgetId })
338
341
fx .getter .EXPECT ().GetObject (mock .Anything , mock .Anything ).RunAndReturn (func (_ context.Context , objectId string ) (smartblock.SmartBlock , error ) {
339
- require .Equal (t , homeId , objectId )
340
- return editor .NewDashboard (sb , fx .store .SpaceIndex (spaceId ), nil ), nil
342
+ switch objectId {
343
+ case homeId :
344
+ return editor .NewDashboard (home , fx .store .SpaceIndex (spaceId ), nil ), nil
345
+ case widgetId :
346
+ return editor .NewWidgetObject (widget , fx .store .SpaceIndex (spaceId ), nil ), nil
347
+ }
348
+ return nil , fmt .Errorf ("failed to get object" )
341
349
})
342
350
343
351
// when
344
352
err := fx .SetListIsFavorite ([]string {"obj1" , "obj2" , "obj3" }, true )
345
353
346
354
// then
347
355
assert .NoError (t , err )
348
- assert .Len (t , sb .Blocks (), 4 )
356
+ assert .Len (t , home .Blocks (), 4 )
357
+ assert .Len (t , widget .Blocks (), 3 )
349
358
})
350
359
351
360
t .Run ("no error on unfavoriting" , func (t * testing.T ) {
352
361
// given
353
362
fx := newFixture (t )
354
- sb := smarttest .New (homeId )
355
- sb .AddBlock (simple .New (& model.Block {Id : homeId , ChildrenIds : []string {"obj1" , "obj2" , "obj3" }}))
356
- sb .AddBlock (simple .New (& model.Block {Id : "obj1" , Content : & model.BlockContentOfLink {Link : & model.BlockContentLink {TargetBlockId : "obj1" }}}))
357
- sb .AddBlock (simple .New (& model.Block {Id : "obj2" , Content : & model.BlockContentOfLink {Link : & model.BlockContentLink {TargetBlockId : "obj2" }}}))
358
- sb .AddBlock (simple .New (& model.Block {Id : "obj3" , Content : & model.BlockContentOfLink {Link : & model.BlockContentLink {TargetBlockId : "obj3" }}}))
363
+ home := smarttest .New (homeId )
364
+ home .AddBlock (simple .New (& model.Block {Id : homeId , ChildrenIds : []string {"obj1" , "obj2" , "obj3" }}))
365
+ home .AddBlock (simple .New (& model.Block {Id : "obj1" , Content : & model.BlockContentOfLink {Link : & model.BlockContentLink {TargetBlockId : "obj1" }}}))
366
+ home .AddBlock (simple .New (& model.Block {Id : "obj2" , Content : & model.BlockContentOfLink {Link : & model.BlockContentLink {TargetBlockId : "obj2" }}}))
367
+ home .AddBlock (simple .New (& model.Block {Id : "obj3" , Content : & model.BlockContentOfLink {Link : & model.BlockContentLink {TargetBlockId : "obj3" }}}))
368
+ widget := smarttest .New (widgetId )
369
+ widget .AddBlock (simple .New (& model.Block {Id : widgetId , ChildrenIds : []string {}}))
359
370
fx .store .AddObjects (t , spaceId , objects )
360
- fx .space .EXPECT ().DerivedIDs ().Return (threads.DerivedSmartblockIds {Home : homeId })
371
+ fx .space .EXPECT ().DerivedIDs ().Return (threads.DerivedSmartblockIds {Home : homeId , Widgets : widgetId })
361
372
fx .getter .EXPECT ().GetObject (mock .Anything , mock .Anything ).RunAndReturn (func (_ context.Context , objectId string ) (smartblock.SmartBlock , error ) {
362
- require .Equal (t , homeId , objectId )
363
- return editor .NewDashboard (sb , fx .store .SpaceIndex (spaceId ), nil ), nil
373
+ switch objectId {
374
+ case homeId :
375
+ return editor .NewDashboard (home , fx .store .SpaceIndex (spaceId ), nil ), nil
376
+ case widgetId :
377
+ return editor .NewWidgetObject (widget , fx .store .SpaceIndex (spaceId ), nil ), nil
378
+ }
379
+ return nil , fmt .Errorf ("failed to get object" )
364
380
})
365
381
366
382
// when
367
383
err := fx .SetListIsFavorite ([]string {"obj3" , "obj1" }, false )
368
384
369
385
// then
370
386
assert .NoError (t , err )
371
- assert .Len (t , sb .Blocks (), 2 )
387
+ assert .Len (t , home .Blocks (), 2 )
388
+ assert .Len (t , widget .Blocks (), 1 )
372
389
})
373
390
374
391
t .Run ("some updates failed" , func (t * testing.T ) {
375
392
// given
376
393
fx := newFixture (t )
377
- sb := smarttest .New (homeId )
378
- sb .AddBlock (simple .New (& model.Block {Id : homeId , ChildrenIds : []string {}}))
394
+ home := smarttest .New (homeId )
395
+ home .AddBlock (simple .New (& model.Block {Id : homeId , ChildrenIds : []string {}}))
396
+ widget := smarttest .New (widgetId )
397
+ widget .AddBlock (simple .New (& model.Block {Id : widgetId , ChildrenIds : []string {}}))
379
398
fx .store .AddObjects (t , spaceId , objects )
380
- fx .space .EXPECT ().DerivedIDs ().Return (threads.DerivedSmartblockIds {Home : homeId })
399
+ fx .space .EXPECT ().DerivedIDs ().Return (threads.DerivedSmartblockIds {Home : homeId , Widgets : widgetId })
381
400
flag := false
382
401
fx .getter .EXPECT ().GetObject (mock .Anything , mock .Anything ).RunAndReturn (func (_ context.Context , objectId string ) (smartblock.SmartBlock , error ) {
383
- require .Equal (t , homeId , objectId )
384
- if flag {
385
- return nil , fmt .Errorf ("unexpected error" )
402
+ switch objectId {
403
+ case homeId :
404
+ if flag {
405
+ return nil , fmt .Errorf ("unexpected error" )
406
+ }
407
+ flag = true
408
+ return editor .NewDashboard (home , fx .store .SpaceIndex (spaceId ), nil ), nil
409
+ case widgetId :
410
+ return editor .NewWidgetObject (widget , fx .store .SpaceIndex (spaceId ), nil ), nil
386
411
}
387
- flag = true
388
- return editor .NewDashboard (sb , fx .store .SpaceIndex (spaceId ), nil ), nil
412
+ return nil , fmt .Errorf ("failed to get object" )
389
413
})
390
414
391
415
// when
392
416
err := fx .SetListIsFavorite ([]string {"obj3" , "obj1" }, true )
393
417
394
418
// then
395
419
assert .NoError (t , err )
396
- assert .Len (t , sb .Blocks (), 2 )
420
+ assert .Len (t , home .Blocks (), 2 )
421
+ assert .Len (t , widget .Blocks (), 3 )
397
422
})
398
423
399
424
t .Run ("all updates failed" , func (t * testing.T ) {
400
425
// given
401
426
fx := newFixture (t )
402
427
fx .store .AddObjects (t , spaceId , objects )
403
- fx .space .EXPECT ().DerivedIDs ().Return (threads.DerivedSmartblockIds {Home : homeId })
428
+ fx .space .EXPECT ().DerivedIDs ().Return (threads.DerivedSmartblockIds {Home : homeId , Widgets : widgetId })
404
429
fx .getter .EXPECT ().GetObject (mock .Anything , mock .Anything ).RunAndReturn (func (_ context.Context , objectId string ) (smartblock.SmartBlock , error ) {
405
430
require .Equal (t , homeId , objectId )
406
431
return nil , fmt .Errorf ("unexpected error" )
0 commit comments