diff options
Diffstat (limited to 'packages/meshbay-hub/tests/test_search_source_merge.py')
| -rw-r--r-- | packages/meshbay-hub/tests/test_search_source_merge.py | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/packages/meshbay-hub/tests/test_search_source_merge.py b/packages/meshbay-hub/tests/test_search_source_merge.py index 078c38d..cadf095 100644 --- a/packages/meshbay-hub/tests/test_search_source_merge.py +++ b/packages/meshbay-hub/tests/test_search_source_merge.py @@ -328,13 +328,35 @@ def test_source_label(tmp_path, module_source): _sources: [{ groupId: 'g1', groupName: 'G1' }] }; const many = { groupId: 'g1', groupName: 'G1', _sources: [{ groupId: 'g1' }, { groupId: 'g2' }] }; + const unmerged = { groupId: 'g9', groupName: 'G9' }; const bare = { }; console.log(JSON.stringify( - [one, many, bare].map(sourceLabel))); + [one, many, unmerged, bare].map((e) => sourceLabel(e)))); """ - one, many, bare = _run(tmp_path, module_source, body) + one, many, unmerged, bare = _run(tmp_path, module_source, body) assert one == {"count": 1, "name": "G1", "groupId": "g1"} # Which group was picked is deliberately not shown once there are several. assert many == {"count": 2, "name": "", "groupId": None} - # The single-group Group page, where entries carry no sources at all. - assert bare == {"count": 1, "name": "", "groupId": None} + # An entry that never went through the merge is its own single source. + assert unmerged == {"count": 1, "name": "G9", "groupId": "g9"} + # The single-group Group page, where entries carry no group at all. + assert bare == {"count": 0, "name": "", "groupId": None} + + +def test_source_label_counts_the_unit_not_the_cover(tmp_path, module_source): + """ + A card stands for a unit; the entry it is drawn from is one file. A show's + poster entry is chosen for its *thumbnail*, so a show in two groups whose + cover episode sits in only one of them would have claimed a single source. + """ + body = """ + const cover = { id: 'e1', groupId: 'aa', groupName: 'AA', + _sources: [{ groupId: 'aa', groupName: 'AA' }] }; + const rest = { id: 'e2', groupId: 'aa', groupName: 'AA', + _sources: [{ groupId: 'aa' }, { groupId: 'bb' }] }; + console.log(JSON.stringify( + [sourceLabel(cover), sourceLabel([cover, rest])])); + """ + alone, unit = _run(tmp_path, module_source, body) + assert alone["count"] == 1 + assert unit["count"] == 2 |