mirror of
https://github.com/bitwarden/browser
synced 2026-02-10 05:30:01 +00:00
Merge branch 'main' into PM-19521
This commit is contained in:
@@ -295,7 +295,7 @@ describe("GeneratorMetadataProvider", () => {
|
||||
[Algorithm.username, effWordList],
|
||||
[Algorithm.password, password],
|
||||
])("gets a specific algorithm", async (algorithm, metadata) => {
|
||||
SomePolicyService.getAll$.mockReturnValue(new BehaviorSubject([]));
|
||||
SomePolicyService.policiesByType$.mockReturnValue(new BehaviorSubject([]));
|
||||
const provider = new GeneratorMetadataProvider(SystemProvider, ApplicationProvider, [
|
||||
metadata,
|
||||
]);
|
||||
@@ -311,7 +311,7 @@ describe("GeneratorMetadataProvider", () => {
|
||||
[Type.username, [effWordList]],
|
||||
[Type.password, [password, passphrase]],
|
||||
])("gets a category of algorithms", async (category, metadata) => {
|
||||
SomePolicyService.getAll$.mockReturnValue(new BehaviorSubject([]));
|
||||
SomePolicyService.policiesByType$.mockReturnValue(new BehaviorSubject([]));
|
||||
const provider = new GeneratorMetadataProvider(SystemProvider, ApplicationProvider, metadata);
|
||||
const result = new ReplaySubject<CredentialAlgorithm[]>(1);
|
||||
|
||||
@@ -329,7 +329,7 @@ describe("GeneratorMetadataProvider", () => {
|
||||
overridePasswordType: Algorithm.password,
|
||||
},
|
||||
} as any);
|
||||
SomePolicyService.getAll$.mockReturnValue(new BehaviorSubject([policy]));
|
||||
SomePolicyService.policiesByType$.mockReturnValue(new BehaviorSubject([policy]));
|
||||
const metadata = [password, passphrase];
|
||||
const provider = new GeneratorMetadataProvider(SystemProvider, ApplicationProvider, metadata);
|
||||
const algorithmResult = new ReplaySubject<CredentialAlgorithm[]>(1);
|
||||
@@ -347,7 +347,7 @@ describe("GeneratorMetadataProvider", () => {
|
||||
});
|
||||
|
||||
it("omits algorithms whose metadata is unavailable", async () => {
|
||||
SomePolicyService.getAll$.mockReturnValue(new BehaviorSubject([]));
|
||||
SomePolicyService.policiesByType$.mockReturnValue(new BehaviorSubject([]));
|
||||
const provider = new GeneratorMetadataProvider(SystemProvider, ApplicationProvider, [
|
||||
password,
|
||||
]);
|
||||
@@ -389,7 +389,7 @@ describe("GeneratorMetadataProvider", () => {
|
||||
[Type.username, effWordList],
|
||||
[Type.password, password],
|
||||
])("emits the user's %s preference", async (type, metadata) => {
|
||||
SomePolicyService.getAll$.mockReturnValue(new BehaviorSubject([]));
|
||||
SomePolicyService.policiesByType$.mockReturnValue(new BehaviorSubject([]));
|
||||
const provider = new GeneratorMetadataProvider(SystemProvider, ApplicationProvider, [
|
||||
metadata,
|
||||
]);
|
||||
@@ -401,7 +401,7 @@ describe("GeneratorMetadataProvider", () => {
|
||||
});
|
||||
|
||||
it("emits a default when the user's preference is unavailable", async () => {
|
||||
SomePolicyService.getAll$.mockReturnValue(new BehaviorSubject([]));
|
||||
SomePolicyService.policiesByType$.mockReturnValue(new BehaviorSubject([]));
|
||||
const provider = new GeneratorMetadataProvider(SystemProvider, ApplicationProvider, [
|
||||
plusAddress,
|
||||
]);
|
||||
@@ -416,7 +416,7 @@ describe("GeneratorMetadataProvider", () => {
|
||||
});
|
||||
|
||||
it("emits undefined when the user's preference is unavailable and there is no metadata", async () => {
|
||||
SomePolicyService.getAll$.mockReturnValue(new BehaviorSubject([]));
|
||||
SomePolicyService.policiesByType$.mockReturnValue(new BehaviorSubject([]));
|
||||
const provider = new GeneratorMetadataProvider(SystemProvider, ApplicationProvider, []);
|
||||
const result = new ReplaySubject<CredentialAlgorithm | undefined>(1);
|
||||
|
||||
|
||||
@@ -145,12 +145,14 @@ export class GeneratorMetadataProvider {
|
||||
|
||||
const available$ = id$.pipe(
|
||||
switchMap((id) => {
|
||||
const policies$ = this.application.policy.getAll$(PolicyType.PasswordGenerator, id).pipe(
|
||||
map((p) => availableAlgorithms_vNext(p).filter((a) => this._metadata.has(a))),
|
||||
map((p) => new Set(p)),
|
||||
// complete policy emissions otherwise `switchMap` holds `available$` open indefinitely
|
||||
takeUntil(anyComplete(id$)),
|
||||
);
|
||||
const policies$ = this.application.policy
|
||||
.policiesByType$(PolicyType.PasswordGenerator, id)
|
||||
.pipe(
|
||||
map((p) => availableAlgorithms_vNext(p).filter((a) => this._metadata.has(a))),
|
||||
map((p) => new Set(p)),
|
||||
// complete policy emissions otherwise `switchMap` holds `available$` open indefinitely
|
||||
takeUntil(anyComplete(id$)),
|
||||
);
|
||||
return policies$;
|
||||
}),
|
||||
map(
|
||||
|
||||
Reference in New Issue
Block a user