chore: integrate local imgproxy sidecar and unify list components
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 36s
Build & Deploy / 🧪 QA (push) Successful in 4m2s
Build & Deploy / 🏗️ Build (push) Successful in 10m53s
Build & Deploy / 🚀 Deploy (push) Successful in 27s
Build & Deploy / 🩺 Health Check (push) Failing after 11s
Build & Deploy / 🔔 Notify (push) Successful in 2s
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 36s
Build & Deploy / 🧪 QA (push) Successful in 4m2s
Build & Deploy / 🏗️ Build (push) Successful in 10m53s
Build & Deploy / 🚀 Deploy (push) Successful in 27s
Build & Deploy / 🩺 Health Check (push) Failing after 11s
Build & Deploy / 🔔 Notify (push) Successful in 2s
- Added imgproxy service to docker-compose.dev.yml with URL mapping - Implemented robust Base64 encoding for imgproxy source URLs - Synchronized NEXT_PUBLIC_IMGPROXY_URL and NEXT_PUBLIC_BASE_URL - Refactored About page to use existing marc-mintel.png asset - Created shared IconList component and unified list styles project-wide - Fixed vertical alignment issues in IconList items - Updated dev script with aggressive port 3000 and lock file cleanup
This commit is contained in:
62
apps/web/src/utils/imgproxy.verify.ts
Normal file
62
apps/web/src/utils/imgproxy.verify.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { getImgproxyUrl } from "./imgproxy";
|
||||
|
||||
/**
|
||||
* Verification script for imgproxy URL generation
|
||||
*/
|
||||
|
||||
function testImgproxyUrl() {
|
||||
const testCases = [
|
||||
{
|
||||
src: "https://picsum.photos/800/800",
|
||||
options: { width: 400, height: 300, resizing_type: "fill" as const },
|
||||
description: "Remote URL with fill resizing",
|
||||
},
|
||||
{
|
||||
src: "/images/avatar.jpg",
|
||||
options: { width: 100, extension: "webp" },
|
||||
description: "Local path with extension conversion",
|
||||
},
|
||||
{
|
||||
src: "https://example.com/image.png",
|
||||
options: { gravity: "no" },
|
||||
description: "Remote URL with custom gravity",
|
||||
},
|
||||
];
|
||||
|
||||
console.log("🧪 Testing imgproxy URL generation...\n");
|
||||
|
||||
testCases.forEach((tc, i) => {
|
||||
const url = getImgproxyUrl(tc.src, tc.options);
|
||||
console.log(`Test Case ${i + 1}: ${tc.description}`);
|
||||
console.log(`Source: ${tc.src}`);
|
||||
console.log(`Result: ${url}`);
|
||||
|
||||
// Basic validation
|
||||
if (url.startsWith("https://img.infra.mintel.me/unsafe/")) {
|
||||
console.log("✅ Base URL and unsafe path correct");
|
||||
} else {
|
||||
console.log("❌ Base URL or unsafe path mismatch");
|
||||
}
|
||||
|
||||
if (
|
||||
tc.options.width &&
|
||||
url.includes(
|
||||
`rs:${tc.options.resizing_type || "fit"}:${tc.options.width}`,
|
||||
)
|
||||
) {
|
||||
console.log("✅ Resizing options present");
|
||||
}
|
||||
|
||||
console.log("-------------------\n");
|
||||
});
|
||||
}
|
||||
|
||||
// Mock environment for testing if not set
|
||||
if (!process.env.NEXT_PUBLIC_IMGPROXY_URL) {
|
||||
process.env.NEXT_PUBLIC_IMGPROXY_URL = "https://img.infra.mintel.me";
|
||||
}
|
||||
if (!process.env.NEXT_PUBLIC_BASE_URL) {
|
||||
process.env.NEXT_PUBLIC_BASE_URL = "http://mintel.localhost";
|
||||
}
|
||||
|
||||
testImgproxyUrl();
|
||||
Reference in New Issue
Block a user