@@ -29,7 +29,7 @@ import Test.Tasty.HUnit ((@=?), testCase)
29
29
-- (queue-sheet)
30
30
import QueueSheet.File (loadYaml' )
31
31
import QueueSheet.Types
32
- ( Date (Date ), Item (Item , itemName , itemUrl ), Name (Name )
32
+ ( Date (Date ), Item (Item , itemName , itemTags , itemUrl ), Name (Name )
33
33
, Queue
34
34
( Queue , queueDate , queueItems , queueName , queueSection , queueTags
35
35
, queueUrl
@@ -40,6 +40,13 @@ import QueueSheet.Types
40
40
41
41
------------------------------------------------------------------------------
42
42
43
+ defaultItem :: Item
44
+ defaultItem = Item
45
+ { itemName = Name " "
46
+ , itemUrl = Nothing
47
+ , itemTags = []
48
+ }
49
+
43
50
defaultQueue :: Queue
44
51
defaultQueue = Queue
45
52
{ queueName = Name " "
@@ -379,9 +386,8 @@ testQueuePrev = testGroup "prev"
379
386
{ qsQueues =
380
387
[ defaultQueue
381
388
{ queueName = Name " test"
382
- , queueItems = Just . Left $ Item
389
+ , queueItems = Just . Left $ defaultItem
383
390
{ itemName = Name " premiere"
384
- , itemUrl = Nothing
385
391
}
386
392
}
387
393
]
@@ -397,9 +403,8 @@ testQueuePrev = testGroup "prev"
397
403
{ qsQueues =
398
404
[ defaultQueue
399
405
{ queueName = Name " test"
400
- , queueItems = Just . Left $ Item
406
+ , queueItems = Just . Left $ defaultItem
401
407
{ itemName = Name " 42"
402
- , itemUrl = Nothing
403
408
}
404
409
}
405
410
]
@@ -415,9 +420,8 @@ testQueuePrev = testGroup "prev"
415
420
{ qsQueues =
416
421
[ defaultQueue
417
422
{ queueName = Name " test"
418
- , queueItems = Just . Left $ Item
423
+ , queueItems = Just . Left $ defaultItem
419
424
{ itemName = Name " premiere"
420
- , itemUrl = Nothing
421
425
}
422
426
}
423
427
]
@@ -434,7 +438,7 @@ testQueuePrev = testGroup "prev"
434
438
{ qsQueues =
435
439
[ defaultQueue
436
440
{ queueName = Name " test"
437
- , queueItems = Just . Left $ Item
441
+ , queueItems = Just . Left $ defaultItem
438
442
{ itemName = Name " 42"
439
443
, itemUrl = Just $ Url " https://www.example.com/42"
440
444
}
@@ -449,6 +453,28 @@ testQueuePrev = testGroup "prev"
449
453
, " url: https://www.example.com/42"
450
454
]
451
455
]
456
+ , testCase " tags" $ do
457
+ let expected = defaultQueueSheet
458
+ { qsQueues =
459
+ [ defaultQueue
460
+ { queueName = Name " test"
461
+ , queueItems = Just . Left $ defaultItem
462
+ { itemName = Name " 42"
463
+ , itemTags = [Tag " one" , Tag " two" ]
464
+ }
465
+ }
466
+ ]
467
+ }
468
+ Right expected @=? loadYaml
469
+ [ validFile " /tmp/test.yaml"
470
+ [ " - name: test"
471
+ , " prev:"
472
+ , " name: 42"
473
+ , " tags:"
474
+ , " - one"
475
+ , " - two"
476
+ ]
477
+ ]
452
478
, testCase " empty" $ do
453
479
let message = intercalate " \n "
454
480
[ " error loading /tmp/test.yaml: Aeson exception:"
@@ -471,9 +497,8 @@ testQueueNext = testGroup "next"
471
497
[ defaultQueue
472
498
{ queueName = Name " test"
473
499
, queueItems = Just $ Right
474
- [ Item
500
+ [ defaultItem
475
501
{ itemName = Name " one"
476
- , itemUrl = Nothing
477
502
}
478
503
]
479
504
}
@@ -492,9 +517,8 @@ testQueueNext = testGroup "next"
492
517
[ defaultQueue
493
518
{ queueName = Name " test"
494
519
, queueItems = Just $ Right
495
- [ Item
520
+ [ defaultItem
496
521
{ itemName = Name " 42"
497
- , itemUrl = Nothing
498
522
}
499
523
]
500
524
}
@@ -513,9 +537,8 @@ testQueueNext = testGroup "next"
513
537
[ defaultQueue
514
538
{ queueName = Name " test"
515
539
, queueItems = Just $ Right
516
- [ Item
540
+ [ defaultItem
517
541
{ itemName = Name " one"
518
- , itemUrl = Nothing
519
542
}
520
543
]
521
544
}
@@ -534,7 +557,7 @@ testQueueNext = testGroup "next"
534
557
[ defaultQueue
535
558
{ queueName = Name " test"
536
559
, queueItems = Just $ Right
537
- [ Item
560
+ [ defaultItem
538
561
{ itemName = Name " one"
539
562
, itemUrl = Just $
540
563
Url " https://www.example.com/one"
@@ -551,17 +574,40 @@ testQueueNext = testGroup "next"
551
574
, " url: https://www.example.com/one"
552
575
]
553
576
]
577
+ , testCase " tags" $ do
578
+ let expected = defaultQueueSheet
579
+ { qsQueues =
580
+ [ defaultQueue
581
+ { queueName = Name " test"
582
+ , queueItems = Just $ Right
583
+ [ defaultItem
584
+ { itemName = Name " one"
585
+ , itemTags = [Tag " one" , Tag " two" ]
586
+ }
587
+ ]
588
+ }
589
+ ]
590
+ }
591
+ Right expected @=? loadYaml
592
+ [ validFile " /tmp/test.yaml"
593
+ [ " - name: test"
594
+ , " next:"
595
+ , " - name: one"
596
+ , " tags:"
597
+ , " - one"
598
+ , " - two"
599
+ ]
600
+ ]
554
601
, testCase " multiple" $ do
555
602
let expected = defaultQueueSheet
556
603
{ qsQueues =
557
604
[ defaultQueue
558
605
{ queueName = Name " test"
559
606
, queueItems = Just $ Right
560
- [ Item
607
+ [ defaultItem
561
608
{ itemName = Name " one"
562
- , itemUrl = Nothing
563
609
}
564
- , Item
610
+ , defaultItem
565
611
{ itemName = Name " 42"
566
612
, itemUrl = Just $
567
613
Url " https://www.example.com/42"
@@ -600,9 +646,8 @@ testQueueNext = testGroup "next"
600
646
[ defaultQueue
601
647
{ queueName = Name " test"
602
648
, queueItems = Just $ Right
603
- [ Item
649
+ [ defaultItem
604
650
{ itemName = Name " 42"
605
- , itemUrl = Nothing
606
651
}
607
652
]
608
653
}
0 commit comments