Files
web/packages/design-system/lib/components/Image/imageLoader.test.ts
Rasmus Langvad d0546926a9 Merged in fix/3697-prettier-configs (pull request #3396)
fix(SW-3691): Setup one prettier config for whole repo

* Setup prettierrc in root and remove other configs


Approved-by: Joakim Jäderberg
Approved-by: Linus Flood
2026-01-07 12:45:50 +00:00

70 lines
1.9 KiB
TypeScript

import { describe, it, expect } from "vitest"
import { imageLoader } from "./imageLoader"
describe("imageLoader", () => {
it("should generate the correct image URL for absolute URLs", () => {
const loader = imageLoader({ dimensions: { width: 800, height: 600 } })
const url = loader({
quality: 80,
src: "https://example.com/image.jpg",
width: 800,
})
expect(url).toBe(
"https://img.scandichotels.com/.netlify/images?url=https://example.com/image.jpg&w=800&q=80"
)
})
it("should generate the correct image URL for relative URLs", () => {
const loader = imageLoader({ dimensions: { width: 800, height: 600 } })
const url = loader({
quality: 80,
src: "/image.jpg",
width: 800,
})
expect(url).toBe("/image.jpg?w=800&q=80")
})
it("should compensate for landscape 3:2 images", () => {
const loader = imageLoader({ dimensions: { width: 6000, height: 4000 } })
const url = loader({
src: "/image.jpg",
width: 400,
})
expect(url).toBe("/image.jpg?w=600")
})
it("should compensate for landscape ~3:2 images", () => {
const loader = imageLoader({ dimensions: { width: 7952, height: 5304 } })
const url = loader({
src: "/image.jpg",
width: 400,
})
expect(url).toBe("/image.jpg?w=600")
})
it("should compensate for standing 2:3 images", () => {
const loader = imageLoader({ dimensions: { width: 4000, height: 6000 } })
const url = loader({
src: "/image.jpg",
width: 800,
})
expect(url).toBe("/image.jpg?w=800")
})
it("should compensate for landscape 2:1 images", () => {
const loader = imageLoader({ dimensions: { width: 2000, height: 1000 } })
const url = loader({
src: "/image.jpg",
width: 800,
})
// used to fetch an image 800x400 image but we, probably, render it with a height of 533
expect(url).toBe("/image.jpg?w=1200")
})
})