PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / dashboard / hooks / test / useMediaLibrary.spec.js
presto-player / src / admin / dashboard / hooks / test Last commit date
useCompleteOnboarding.spec.js 3 weeks ago useDateRangePicker.spec.js 1 month ago useEmail.spec.js 1 month ago useEngagementChartData.spec.js 1 month ago useLicenseSettings.spec.js 1 month ago useLink.spec.js 1 month ago useMediaDetail.spec.js 1 month ago useMediaLibrary.spec.js 1 month ago useMediaList.spec.js 1 month ago usePerformanceSettings.spec.js 1 month ago useRegisterActivePage.spec.js 1 month ago useSettingOption.spec.js 1 month ago useSimpleSettingsPage.spec.js 1 month ago useTopPerforming.spec.js 1 month ago useTopVideosPaginated.spec.js 1 month ago useUpgradeCTA.spec.js 1 month ago useUserDetail.spec.js 1 month ago
useMediaLibrary.spec.js
45 lines
1 import { renderHook } from "@testing-library/react-hooks";
2 import { useMediaLibrary } from "../useMediaLibrary";
3
4 const callGetFilename = (...args) => {
5 const { result } = renderHook(() => useMediaLibrary(jest.fn()));
6 return result.current.getFilename(...args);
7 };
8
9 describe("useMediaLibrary.getFilename", () => {
10 it("returns an empty string for falsy input", () => {
11 expect(callGetFilename("")).toBe("");
12 expect(callGetFilename(null)).toBe("");
13 expect(callGetFilename(undefined)).toBe("");
14 });
15
16 it("returns the original input verbatim when URL parsing fails", () => {
17 expect(callGetFilename("not a url")).toBe("not a url");
18 });
19
20 it("returns the bare filename when at or under maxLength", () => {
21 expect(callGetFilename("https://cdn.example.com/files/photo.jpg")).toBe(
22 "photo.jpg"
23 );
24 });
25
26 it("returns an empty string when the URL has no trailing path segment", () => {
27 expect(callGetFilename("https://cdn.example.com/")).toBe("");
28 });
29
30 // Truncated total = (maxLength - ext.length - 3) + "..." + ext = maxLength.
31 it.each([
32 [30, `${"a".repeat(40)}.jpg`],
33 [15, `${"a".repeat(50)}.jpg`],
34 ])(
35 "truncates long names to %i chars while preserving the extension",
36 (maxLength, longName) => {
37 const url = `https://cdn.example.com/files/${longName}`;
38 const out = callGetFilename(url, maxLength);
39 expect(out.length).toBe(maxLength);
40 expect(out.endsWith(".jpg")).toBe(true);
41 expect(out).toContain("...");
42 }
43 );
44 });
45