From e8620ad02bce43d254152dbf4b30225187f8ebee Mon Sep 17 00:00:00 2001 From: David Vogel Date: Sun, 16 Nov 2025 15:58:07 +0000 Subject: [PATCH] Add test for the FontPaths option --- cli_test.go | 12 ++++++++++++ docker_test.go | 15 +++++++++++++++ test-files/Delius-Regular.ttf | Bin 0 -> 58848 bytes 3 files changed, 27 insertions(+) create mode 100644 test-files/Delius-Regular.ttf diff --git a/cli_test.go b/cli_test.go index 8d3f8cf..c30047c 100644 --- a/cli_test.go +++ b/cli_test.go @@ -51,6 +51,18 @@ func TestCLI_FontsWithOptions(t *testing.T) { } } +func TestCLI_FontsWithFontPaths(t *testing.T) { + caller := typst.CLI{} + + result, err := caller.Fonts(&typst.OptionsFonts{IgnoreSystemFonts: true, FontPaths: []string{filepath.Join(".", "test-files")}}) + if err != nil { + t.Fatalf("Failed to get available fonts: %v.", err) + } + if len(result) != 5 { + t.Errorf("Unexpected number of detected fonts. Got %d, want %d.", len(result), 5) + } +} + // Test basic compile functionality. func TestCLI_Compile(t *testing.T) { const inches = 1 diff --git a/docker_test.go b/docker_test.go index 8c7da04..62060f4 100644 --- a/docker_test.go +++ b/docker_test.go @@ -63,6 +63,21 @@ func TestDocker_FontsWithOptions(t *testing.T) { } } +func TestDocker_FontsWithFontPaths(t *testing.T) { + caller := typst.Docker{ + Image: typstDockerImage(), + Volumes: []string{"./test-files:/fonts"}, + } + + result, err := caller.Fonts(&typst.OptionsFonts{IgnoreSystemFonts: true, FontPaths: []string{"/fonts"}}) + if err != nil { + t.Fatalf("Failed to get available fonts: %v.", err) + } + if len(result) != 5 { + t.Errorf("Unexpected number of detected fonts. Got %d, want %d.", len(result), 5) + } +} + // Test basic compile functionality. func TestDocker_Compile(t *testing.T) { const inches = 1 diff --git a/test-files/Delius-Regular.ttf b/test-files/Delius-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2cd4c9ae92a73ba9e2e7d16eff2b25a3afe779c7 GIT binary patch literal 58848 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