Commit 7e14272

Anton Medvedev <anton@medv.io>
2023-10-14 11:49:49
Fix tests
1 parent 7def3dd
src/main.ts
@@ -8,6 +8,7 @@ import { updateReadme } from './update-readme.js'
 import { updateBadges } from './update-badges.js'
 import { presentBadges } from './present-badges.js'
 import { getBadges } from './get-badges.js'
+import { allBadges } from './all-badges/index.js'
 
 void (async function main() {
   try {
@@ -63,6 +64,7 @@ void (async function main() {
     )
 
     userBadges = presentBadges(
+      allBadges.map((m) => m.default),
       data,
       userBadges,
       pickBadges,
src/present-badges.ts
@@ -10,21 +10,21 @@ export const mergeBadges = (...badges: (Badge | Badge[])[]): Badge[] =>
       .flat()
       .reduce<Record<string, Badge>>(
         (m, v) => Object.assign(m, { [v.id]: v }),
-        {},
-      ),
+        {}
+      )
   )
 
 const parseRegexp = (value: string): RegExp =>
   new RegExp(`^${value}$`.replace('*', '.+'))
 
 export const presentBadges = (
+  presenters: BadgePresenter[],
   data: Data,
   userBadges: Badge[],
   pickBadges: string[],
   omitBadges: string[],
-  compact: boolean,
+  compact: boolean
 ): Badge[] => {
-  const presenters: BadgePresenter[] = allBadges.map((m) => m.default)
   for (const presenter of presenters) {
     const newBadges: Badge[] = []
     const grant = badgeCollection(newBadges)
@@ -45,28 +45,28 @@ export const presentBadges = (
         continue
       }
       const touchedBadges = userBadges.filter(({ id }) =>
-        (presenter.badges as ID[]).includes(id),
+        (presenter.badges as ID[]).includes(id)
       )
       const newHighestTierBadge = touchedBadges.reduce(
         (prev, curr) => (prev.tier > curr.tier ? prev : curr),
-        {} as Badge,
+        {} as Badge
       )
 
       omitBadges.push(
         ...touchedBadges
           .map(({ id }) => id)
-          .filter((id) => id !== newHighestTierBadge.id),
+          .filter((id) => id !== newHighestTierBadge.id)
       )
     }
   }
   if (pickBadges.length > 0) {
     userBadges = userBadges.filter((x) =>
-      pickBadges.map(parseRegexp).some((r) => r.test(x.id)),
+      pickBadges.map(parseRegexp).some((r) => r.test(x.id))
     )
   }
   if (omitBadges.length > 0) {
     userBadges = userBadges.filter((x) =>
-      omitBadges.map(parseRegexp).every((r) => !r.test(x.id)),
+      omitBadges.map(parseRegexp).every((r) => !r.test(x.id))
     )
   }
 
test/present-badges.test.ts
@@ -32,8 +32,11 @@ describe('present-badges', () => {
     ] as Data['repos'],
   }
 
-  it('presentBadges() applies `pick`', () => {
+  it('presentBadges() applies `pick`', async () => {
     const userBadges = presentBadges(
+      [
+        await import('../src/all-badges/stars/stars.js'),
+      ].map((m) => m.default),
       data,
       [],
       ['stars-100', 'stars-500'],
@@ -71,8 +74,11 @@ describe('present-badges', () => {
     ])
   })
 
-  it('presentBadges() applies `omit`', () => {
+  it('presentBadges() applies `omit`', async () => {
     const userBadges = presentBadges(
+      [
+        await import('../src/all-badges/stars/stars.js'),
+      ].map((m) => m.default),
       data,
       [],
       ['stars-100', 'stars-500'],
@@ -97,8 +103,11 @@ describe('present-badges', () => {
     ])
   })
 
-  it('presentBadges() supports masks for `omit` && `pick`', () => {
+  it('presentBadges() supports masks for `omit` && `pick`', async () => {
     const userBadges = presentBadges(
+      [
+        await import('../src/all-badges/stars/stars.js'),
+      ].map((m) => m.default),
       data,
       [],
       ['stars-*'],
@@ -136,8 +145,11 @@ describe('present-badges', () => {
     ])
   })
 
-  it('presentBadges() applies `compact`', () => {
+  it('presentBadges() applies `compact`', async () => {
     const userBadges = presentBadges(
+      [
+        await import('../src/all-badges/stars/stars.js'),
+      ].map((m) => m.default),
       data,
       [],
       ['stars-1000', 'stars-2000', 'stars-5000'],