diff --git a/packages/api/src/bsky-agent.ts b/packages/api/src/bsky-agent.ts index e51347bca7e..e7e2a1717cc 100644 --- a/packages/api/src/bsky-agent.ts +++ b/packages/api/src/bsky-agent.ts @@ -374,7 +374,7 @@ export class BskyAgent extends AtpAgent { moderationPrefs: { adultContentEnabled: false, labels: { ...DEFAULT_LABEL_SETTINGS }, - labelers: [], + labelers: BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), mutedWords: [], hiddenPosts: [], }, @@ -404,10 +404,14 @@ export class BskyAgent extends AtpAgent { AppBskyActorDefs.validateLabelersPref(pref).success ) { // labelers preferences - prefs.moderationPrefs.labelers = pref.labelers.map((labeler) => ({ - ...labeler, - labels: {}, - })) + prefs.moderationPrefs.labelers = BskyAgent.appLabelers + .map((did) => ({ did, labels: {} })) + .concat( + pref.labelers.map((labeler) => ({ + ...labeler, + labels: {}, + })), + ) } else if ( AppBskyActorDefs.isSavedFeedsPref(pref) && AppBskyActorDefs.validateSavedFeedsPref(pref).success diff --git a/packages/api/tests/bsky-agent.test.ts b/packages/api/tests/bsky-agent.test.ts index bae98dfe65d..2946dafa3b7 100644 --- a/packages/api/tests/bsky-agent.test.ts +++ b/packages/api/tests/bsky-agent.test.ts @@ -230,12 +230,17 @@ describe('agent', () => { password: 'password', }) + const DEFAULT_LABELERS = BskyAgent.appLabelers.map((did) => ({ + did, + labels: {}, + })) + await expect(agent.getPreferences()).resolves.toStrictEqual({ feeds: { pinned: undefined, saved: undefined }, moderationPrefs: { adultContentEnabled: false, labels: DEFAULT_LABEL_SETTINGS, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -264,7 +269,7 @@ describe('agent', () => { moderationPrefs: { adultContentEnabled: true, labels: DEFAULT_LABEL_SETTINGS, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -293,7 +298,7 @@ describe('agent', () => { moderationPrefs: { adultContentEnabled: false, labels: DEFAULT_LABEL_SETTINGS, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -322,7 +327,7 @@ describe('agent', () => { moderationPrefs: { adultContentEnabled: false, labels: { ...DEFAULT_LABEL_SETTINGS, misinfo: 'hide' }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -355,7 +360,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -391,7 +396,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -427,7 +432,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -463,7 +468,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -499,7 +504,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -535,7 +540,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -577,7 +582,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -613,7 +618,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -649,7 +654,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -685,7 +690,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -721,7 +726,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -757,7 +762,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -800,7 +805,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -843,7 +848,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -886,7 +891,7 @@ describe('agent', () => { misinfo: 'hide', spam: 'ignore', }, - labelers: [], + labelers: DEFAULT_LABELERS, mutedWords: [], hiddenPosts: [], }, @@ -1045,6 +1050,7 @@ describe('agent', () => { porn: 'warn', }, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:first-labeler', labels: {}, @@ -1089,6 +1095,7 @@ describe('agent', () => { porn: 'warn', }, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:first-labeler', labels: {}, @@ -1134,6 +1141,7 @@ describe('agent', () => { porn: 'ignore', }, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:first-labeler', labels: {}, @@ -1179,6 +1187,7 @@ describe('agent', () => { porn: 'ignore', }, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:first-labeler', labels: {}, @@ -1220,6 +1229,7 @@ describe('agent', () => { porn: 'ignore', }, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:first-labeler', labels: {}, @@ -1261,6 +1271,7 @@ describe('agent', () => { porn: 'ignore', }, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:first-labeler', labels: {}, @@ -1313,6 +1324,7 @@ describe('agent', () => { porn: 'ignore', }, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:first-labeler', labels: {}, diff --git a/packages/api/tests/moderation-prefs.test.ts b/packages/api/tests/moderation-prefs.test.ts index 0a9a768ce0c..e8a7c86cc1d 100644 --- a/packages/api/tests/moderation-prefs.test.ts +++ b/packages/api/tests/moderation-prefs.test.ts @@ -62,7 +62,9 @@ describe('agent', () => { sexual: 'ignore', 'graphic-media': 'ignore', }, - labelers: [], + labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), + ], hiddenPosts: [], mutedWords: [], }, @@ -101,6 +103,7 @@ describe('agent', () => { adultContentEnabled: false, labels: DEFAULT_LABEL_SETTINGS, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:other', labels: {}, @@ -134,7 +137,9 @@ describe('agent', () => { moderationPrefs: { adultContentEnabled: false, labels: DEFAULT_LABEL_SETTINGS, - labelers: [], + labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), + ], hiddenPosts: [], mutedWords: [], }, @@ -177,6 +182,7 @@ describe('agent', () => { adultContentEnabled: false, labels: { ...DEFAULT_LABEL_SETTINGS, porn: 'ignore', nsfw: 'ignore' }, labelers: [ + ...BskyAgent.appLabelers.map((did) => ({ did, labels: {} })), { did: 'did:plc:other', labels: {