Fixed 8K Members not mapped in scraper index.
This commit is contained in:
47
tests/profiles.js
Normal file
47
tests/profiles.js
Normal file
@@ -0,0 +1,47 @@
|
||||
'use strict';
|
||||
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
|
||||
const argv = require('../src/argv');
|
||||
const scrapers = require('../src/scrapers/scrapers');
|
||||
const { fetchEntitiesBySlug } = require('../src/entities');
|
||||
|
||||
const actorScrapers = scrapers.actors;
|
||||
|
||||
// profiler in this context is shorthand for profile scraper
|
||||
async function init() {
|
||||
const entitiesBySlug = await fetchEntitiesBySlug(Object.keys(actorScrapers), { types: ['channel', 'network', 'info'], prefer: argv.prefer });
|
||||
|
||||
Object.entries(actorScrapers).reduce(async (chain, [entitySlug, scraper]) => {
|
||||
await chain;
|
||||
|
||||
const entity = entitiesBySlug[entitySlug] || null;
|
||||
|
||||
const profilers = Array.from(new Set(Object.entries(scraper) // some layouts will use the same profiler
|
||||
.flatMap(([fnKey, fnOrLayout]) => {
|
||||
if (fnOrLayout.fetchProfile) {
|
||||
// layout
|
||||
return fnOrLayout.fetchProfile;
|
||||
}
|
||||
|
||||
if (fnKey === 'fetchProfile') {
|
||||
// primary
|
||||
return fnOrLayout;
|
||||
}
|
||||
|
||||
return null;
|
||||
}).filter(Boolean)));
|
||||
|
||||
await test(`${entitySlug} (${entity?.name})`, async () => {
|
||||
await test('has entity', () => assert.notEqual(entity, null));
|
||||
await test('has profilers', () => assert.ok(profilers.length > 0));
|
||||
|
||||
await test('foo', () => {
|
||||
assert.strictEqual(5, 5);
|
||||
});
|
||||
});
|
||||
}, Promise.resolve());
|
||||
}
|
||||
|
||||
init();
|
||||
Reference in New Issue
Block a user