41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
|
|
import { getPortFromUrl } from "../url";
|
|
|
|
describe("getPortFromUrl", () => {
|
|
test.each([
|
|
[80, "http"],
|
|
[443, "https"],
|
|
])("should return %s for %s protocol without port", (expectedPort, protocol) => {
|
|
// Arrange
|
|
const url = new URL(`${protocol}://example.com`);
|
|
|
|
// Act
|
|
const port = getPortFromUrl(url);
|
|
|
|
// Assert
|
|
expect(port).toBe(expectedPort);
|
|
});
|
|
test.each([["http"], ["https"], ["anything"]])("should return the specified port for %s protocol", (protocol) => {
|
|
// Arrange
|
|
const expectedPort = 3000;
|
|
const url = new URL(`${protocol}://example.com:${expectedPort}`);
|
|
|
|
// Act
|
|
const port = getPortFromUrl(url);
|
|
|
|
// Assert
|
|
expect(port).toBe(expectedPort);
|
|
});
|
|
test("should throw an error for unsupported protocol", () => {
|
|
// Arrange
|
|
const url = new URL("ftp://example.com");
|
|
|
|
// Act
|
|
const act = () => getPortFromUrl(url);
|
|
|
|
// Act & Assert
|
|
expect(act).toThrowError("Unsupported protocol: ftp:");
|
|
});
|
|
});
|