import { TestBed } from '@angular/core/testing'; import { ExpandableValueComponent } from './expandable-value.component'; describe('执行字段折叠', () => { for (const [label, value] of [['Payload', '{"x":1}'], ['输入', '完整内容'.repeat(100)], ['输出', '行\n'.repeat(6)]]) { it(`默认折叠 ${label} 并保留完整内容`, () => { const fixture = TestBed.createComponent(ExpandableValueComponent); fixture.componentRef.setInput('label', label); fixture.componentRef.setInput('value', value); fixture.detectChanges(); const details: HTMLDetailsElement = fixture.nativeElement.querySelector('details'); expect(details.open).toBeFalse(); details.querySelector('summary')!.click(); expect(details.open).toBeTrue(); expect(details.querySelector('pre')!.textContent).toBe(value); fixture.detectChanges(); expect(details.open).toBeTrue(); }); } it('直接显示普通短字段', () => { const fixture = TestBed.createComponent(ExpandableValueComponent); fixture.componentRef.setInput('value', '点击设置'); fixture.detectChanges(); expect(fixture.nativeElement.querySelector('details')).toBeNull(); expect(fixture.nativeElement.textContent).toContain('点击设置'); }); });