use serve_esm::get_mime_type; #[test] fn known_extensions() { for (path, expected) in [ ("foo.js", "text/javascript; charset=utf-8"), ("foo.mjs", "text/javascript; charset=utf-8"), ("foo.cjs", "text/javascript; charset=utf-8"), ("foo.jsx", "text/jsx; charset=utf-8"), ("foo.ts", "text/typescript; charset=utf-8"), ("foo.mts", "text/typescript; charset=utf-8"), ("foo.cts", "text/typescript; charset=utf-8"), ("foo.tsx", "text/tsx; charset=utf-8"), ("foo.json", "application/json; charset=utf-8"), ("foo.map", "application/json; charset=utf-8"), ("foo.css", "text/css; charset=utf-8"), ("foo.html", "text/html; charset=utf-8"), ("foo.txt", "text/plain; charset=utf-8"), ("foo.md", "text/markdown; charset=utf-8"), ("foo.svg", "image/svg+xml; charset=utf-8"), ("foo.wasm", "application/wasm"), ] { assert_eq!(get_mime_type(path), Some(expected), "{path}"); } } #[test] fn only_the_final_extension_counts_and_case_does_not_matter() { assert_eq!( get_mime_type("foo.d.ts"), Some("text/typescript; charset=utf-8") ); assert_eq!( get_mime_type("foo.bundle.js"), Some("text/javascript; charset=utf-8") ); assert_eq!( get_mime_type("FOO.JS"), Some("text/javascript; charset=utf-8") ); for path in ["foo.xyz", "README", "", "foo.", "src.ts/no-extension"] { assert_eq!(get_mime_type(path), None, "{path}"); } }