- Timestamp:
- 08/15/2026 07:43:02 AM (4 weeks ago)
- Branches:
- main
- Children:
- bec9001
- Parents:
- e1da6a1
- Location:
- test
- Files:
-
- 2 edited
-
ap-collection-paging.test.js (modified) (1 diff)
-
ap-library.test.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
test/ap-collection-paging.test.js
re1da6a1 r19a9a1e 84 84 assert.notEqual(pagina.body.id, wortel.body.id, `${pad}: pagina deelt zijn id met de collectie`); 85 85 86 // En hij mag niet zelf weer een `first` dragen -- dat is de lus waar 87 // open.audio in liep. 88 assert.equal(pagina.body.first, undefined, `${pad}: de pagina draagt zelf een first`); 86 // Een pagina MAG `first` dragen (AS2: CollectionPage erft van Collection, 87 // en Funkwhale eist het zelfs op library-pagina's). Wat niet mag is een 88 // `next` naar zichzelf: dat is de lus, en die zit in de verwijzing die een 89 // lezer volgt, niet in de aanwezigheid van het veld. 90 assert.notEqual(pagina.body.next, eerste, `${pad}: next wijst naar de pagina zelf`); 91 92 // De items horen bij het type: geordend -> orderedItems, ongeordend -> 93 // items. Een `Collection` met `orderedItems` is voor een strikte lezer leeg. 94 const sleutel = pagina.body.type === 'CollectionPage' ? 'items' : 'orderedItems'; 95 assert.ok(Array.isArray(pagina.body[sleutel]), `${pad}: ${pagina.body.type} zonder ${sleutel}`); 89 96 }); 90 97 } -
test/ap-library.test.js
re1da6a1 r19a9a1e 53 53 // van de bak zijn poort overrulen. 54 54 const lib = AP.buildLibrary(BASE, site, AP.siteOpenTracks('s1')); 55 assert.deepEqual(lib. orderedItems.map((a) => a.name), ['Het open nummer']);55 assert.deepEqual(lib.items.map((a) => a.name), ['Het open nummer']); 56 56 }); 57 57 … … 59 59 // Dit is het veld waar het om begonnen was: het haakje waar een upload aan komt. 60 60 const lib = AP.buildLibrary(BASE, site, AP.siteOpenTracks('s1')); 61 for (const a of lib. orderedItems) assert.equal(a.library, LIB);61 for (const a of lib.items) assert.equal(a.library, LIB); 62 62 // Ook als de track ergens anders vandaan komt -- de losse ophaal, de 63 63 // trackcollectie, de playlist. Anders hangt het er maar op een plek. 64 64 const los = AP.buildTrackAudio(BASE, site, AP.openTrack('s1', 't1'), { standalone: true }); 65 65 assert.equal(los.library, LIB); 66 }); 67 68 // Wat hun serializers WERKELIJK eisen, uit de bron en niet uit de docs. 69 // api/funkwhale_api/federation/serializers.py op develop, gelezen 15-8: 70 // 71 // LibrarySerializer(PaginatedCollectionSerializer) regel 1071 72 // type in [as:Collection, fw:Library] · name · id · first · last · totalItems 73 // audience: ChoiceField(required=False) MAAR create() doet 74 // privacy[validated_data["audience"]] -- ontbreekt de sleutel, dan een 75 // KeyError en dus een 500. Zo gaf open.audio op 15-8 een 500 op onze URL. 76 // en het is de schakel naar privacy_level 'everyone' == afspeelbaar. 77 // 78 // CollectionPageSerializer regel 1157 79 // type == as:CollectionPage (NIET OrderedCollectionPage) · items (NIET 80 // orderedItems) · id · first · last · partOf · totalItems 81 // 82 // Deze test staat er omdat die eisen nergens anders bij ons zijn opgeschreven. 83 // Zonder hem is het volgende dat iemand de bibliotheek 'opruimt' naar de 84 // gewone OrderedCollection-vorm, en dan is hij daar stil weer leeg. 85 test('de bibliotheek voldoet aan Funkwhale LibrarySerializer', () => { 86 const lib = AP.buildLibrary(BASE, site, AP.siteOpenTracks('s1')); 87 assert.equal(lib.audience, 'https://www.w3.org/ns/activitystreams#Public', 88 'zonder audience een KeyError in hun create() -- 500'); 89 assert.ok(Array.isArray(lib.items), 'Collection draagt items, geen orderedItems'); 90 assert.equal(lib.orderedItems, undefined); 91 for (const veld of ['id', 'name', 'first', 'last', 'totalItems', 'attributedTo']) { 92 assert.ok(lib[veld] !== undefined, `${veld} ontbreekt`); 93 } 94 }); 95 96 test('een bibliotheekpagina voldoet aan Funkwhale CollectionPageSerializer', () => { 97 const p = AP.buildLibrary(BASE, site, AP.siteOpenTracks('s1'), { page: 1 }); 98 assert.equal(p.type, 'CollectionPage', 'OrderedCollectionPage wijzen ze af'); 99 assert.ok(Array.isArray(p.items), 'items, niet orderedItems'); 100 assert.equal(p.orderedItems, undefined); 101 assert.equal(p.partOf, LIB); 102 assert.equal(p.id, `${LIB}?page=1`); 103 for (const veld of ['first', 'last', 'totalItems']) { 104 assert.ok(p[veld] !== undefined, `${veld} ontbreekt op de pagina`); 105 } 66 106 }); 67 107
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)