1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-10 13:40:06 +00:00

[PM-21343] - add download bitwarden to list of nudges for settings badge (#14682)

* add download bitwarden to list of nudges for settings badge

* update tests
This commit is contained in:
Jordan Aasen
2025-05-09 12:07:14 -07:00
committed by GitHub
parent 624dafa431
commit e538425e7a
2 changed files with 25 additions and 10 deletions

View File

@@ -12,7 +12,11 @@ import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.servi
import { FakeStateProvider, mockAccountServiceWith } from "../../../common/spec";
import { HasItemsNudgeService, EmptyVaultNudgeService } from "./custom-nudges-services";
import {
HasItemsNudgeService,
EmptyVaultNudgeService,
DownloadBitwardenNudgeService,
} from "./custom-nudges-services";
import { DefaultSingleNudgeService } from "./default-single-nudge.service";
import { VaultNudgesService, VaultNudgeType } from "./vault-nudges.service";
@@ -25,6 +29,8 @@ describe("Vault Nudges Service", () => {
getFeatureFlag: jest.fn().mockReturnValue(true),
};
const vaultNudgeServices = [EmptyVaultNudgeService, DownloadBitwardenNudgeService];
beforeEach(async () => {
fakeStateProvider = new FakeStateProvider(mockAccountServiceWith("user-id" as UserId));
@@ -46,6 +52,10 @@ describe("Vault Nudges Service", () => {
provide: HasItemsNudgeService,
useValue: mock<HasItemsNudgeService>(),
},
{
provide: DownloadBitwardenNudgeService,
useValue: mock<DownloadBitwardenNudgeService>(),
},
{
provide: EmptyVaultNudgeService,
useValue: mock<EmptyVaultNudgeService>(),
@@ -130,11 +140,14 @@ describe("Vault Nudges Service", () => {
describe("HasActiveBadges", () => {
it("should return true if a nudgeType with hasBadgeDismissed === false", async () => {
TestBed.overrideProvider(EmptyVaultNudgeService, {
useValue: {
nudgeStatus$: () => of({ hasBadgeDismissed: false, hasSpotlightDismissed: false }),
},
vaultNudgeServices.forEach((service) => {
TestBed.overrideProvider(service, {
useValue: {
nudgeStatus$: () => of({ hasBadgeDismissed: false, hasSpotlightDismissed: false }),
},
});
});
const service = testBed.inject(VaultNudgesService);
const result = await firstValueFrom(service.hasActiveBadges$("user-id" as UserId));
@@ -142,10 +155,12 @@ describe("Vault Nudges Service", () => {
expect(result).toBe(true);
});
it("should return false if all nudgeTypes have hasBadgeDismissed === true", async () => {
TestBed.overrideProvider(EmptyVaultNudgeService, {
useValue: {
nudgeStatus$: () => of({ hasBadgeDismissed: true, hasSpotlightDismissed: true }),
},
vaultNudgeServices.forEach((service) => {
TestBed.overrideProvider(service, {
useValue: {
nudgeStatus$: () => of({ hasBadgeDismissed: true, hasSpotlightDismissed: false }),
},
});
});
const service = testBed.inject(VaultNudgesService);

View File

@@ -114,7 +114,7 @@ export class VaultNudgesService {
*/
hasActiveBadges$(userId: UserId): Observable<boolean> {
// Add more nudge types here if they have the settings badge feature
const nudgeTypes = [VaultNudgeType.EmptyVaultNudge];
const nudgeTypes = [VaultNudgeType.EmptyVaultNudge, VaultNudgeType.DownloadBitwarden];
const nudgeTypesWithBadge$ = nudgeTypes.map((nudge) => {
return this.getNudgeService(nudge)