1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-05 01:53:55 +00:00
Files
browser/libs/components/src/icon/icon.components.spec.ts
Vicki League 805b6fe7aa [CL-573] Move all svg icons to new libs/assets (#16020)
* create libs/assets

* treeshake lib and filter out non-icons from icon story

* update docs

* fix icon colors in browser and desktop

* better name for vault icon

* move illustrations
2025-08-21 11:35:59 -05:00

39 lines
1.1 KiB
TypeScript

import { ComponentFixture, TestBed } from "@angular/core/testing";
import { Icon, svgIcon } from "@bitwarden/assets/svg";
import { BitIconComponent } from "./icon.component";
describe("IconComponent", () => {
let fixture: ComponentFixture<BitIconComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [BitIconComponent],
}).compileComponents();
fixture = TestBed.createComponent(BitIconComponent);
fixture.detectChanges();
});
it("should have empty innerHtml when input is not an Icon", () => {
const fakeIcon = { svg: "harmful user input" } as Icon;
fixture.componentRef.setInput("icon", fakeIcon);
fixture.detectChanges();
const el = fixture.nativeElement as HTMLElement;
expect(el.innerHTML).toBe("");
});
it("should contain icon when input is a safe Icon", () => {
const icon = svgIcon`<svg><text x="0" y="15">safe icon</text></svg>`;
fixture.componentRef.setInput("icon", icon);
fixture.detectChanges();
const el = fixture.nativeElement as HTMLElement;
expect(el.innerHTML).toBe(`<svg><text x="0" y="15">safe icon</text></svg>`);
});
});