46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import { signal } from '@angular/core';
|
|
import { TestBed } from '@angular/core/testing';
|
|
import { WorldStore } from '../../features/world/world.store';
|
|
import { ContextPanelComponent } from './context-panel.component';
|
|
|
|
describe('ContextPanelComponent', () => {
|
|
it('uses a runtime location derivative while preserving the API artwork path as image fallback', async () => {
|
|
await TestBed.configureTestingModule({
|
|
imports: [ContextPanelComponent],
|
|
providers: [
|
|
{
|
|
provide: WorldStore,
|
|
useValue: {
|
|
currentLocation: signal({
|
|
id: 'south-gate-id',
|
|
key: 'south-gate',
|
|
name: 'Südtor von Graufurt',
|
|
description: 'Der letzte sichere Schritt vor den Aschenfeldern.',
|
|
regionKey: 'ashen-fields',
|
|
minRecommendedLevel: 1,
|
|
maxRecommendedLevel: 1,
|
|
dangerLevel: 0,
|
|
isSafe: true,
|
|
huntingEnabled: false,
|
|
artworkPath: '/images/backgrounds/Suedtor.png',
|
|
connections: [],
|
|
}),
|
|
selectedConnection: signal(null),
|
|
},
|
|
},
|
|
],
|
|
}).compileComponents();
|
|
|
|
const fixture = TestBed.createComponent(ContextPanelComponent);
|
|
fixture.detectChanges();
|
|
|
|
const element = fixture.nativeElement as HTMLElement;
|
|
expect(element.querySelector<HTMLSourceElement>('source')?.srcset).toContain(
|
|
'/images/backgrounds/runtime/Suedtor-960.jpg',
|
|
);
|
|
expect(element.querySelector<HTMLImageElement>('img')?.getAttribute('src')).toBe(
|
|
'/images/backgrounds/Suedtor.png',
|
|
);
|
|
});
|
|
});
|