PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.2
Presto Player v4.3.2
4.3.2 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 1 month ago useDateRangePicker.spec.js 2 months ago useEmail.spec.js 2 months ago useEngagementChartData.spec.js 2 months ago useLicenseSettings.spec.js 2 months ago useLink.spec.js 2 months ago useMediaDetail.spec.js 2 months ago useMediaLibrary.spec.js 2 months ago useMediaList.spec.js 1 month ago usePerformanceSettings.spec.js 2 months ago useRegisterActivePage.spec.js 2 months ago useSettingOption.spec.js 2 months ago useSimpleSettingsPage.spec.js 2 months ago useTopPerforming.spec.js 2 months ago useTopVideosPaginated.spec.js 2 months ago useUpgradeCTA.spec.js 2 months ago useUserDetail.spec.js 2 months 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