aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/tests/test_search_source_merge.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-hub/tests/test_search_source_merge.py')
-rw-r--r--packages/meshbay-hub/tests/test_search_source_merge.py30
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