From b35040aa7973442b2dc8e1dee026de5a80575b6f Mon Sep 17 00:00:00 2001 From: Dan Anglin Date: Sun, 18 Aug 2024 18:47:36 +0100 Subject: [PATCH] update tests in utilities --- internal/utilities/directories_test.go | 112 +++++++++++++++++-------- internal/utilities/utilities_test.go | 2 - 2 files changed, 77 insertions(+), 37 deletions(-) diff --git a/internal/utilities/directories_test.go b/internal/utilities/directories_test.go index 53e04e7..b55cc22 100644 --- a/internal/utilities/directories_test.go +++ b/internal/utilities/directories_test.go @@ -7,34 +7,45 @@ import ( "codeflow.dananglin.me.uk/apollo/enbas/internal/utilities" ) -func TestCalculateMediaCacheDir(t *testing.T) { - t.Parallel() +func TestDirectoryCalculations(t *testing.T) { + t.Log("Testing the directory calculations") projectDir, err := projectRoot() if err != nil { t.Fatalf("Unable to get the project root directory: %v", err) } - cacheRoot := filepath.Join(projectDir, "test", "cache") - instance := "http://gotosocial.yellow-desert.social" + t.Setenv("XDG_CACHE_HOME", "/home/enbas/.cache") + t.Setenv("XDG_CONFIG_HOME", "/home/enbas/.config") - got, err := utilities.CalculateMediaCacheDir(cacheRoot, instance) - if err != nil { - t.Fatalf("Unable to calculate the media cache directory: %v", err) - } + t.Run("Media Cache Directory Calculation", testCalculateMediaCacheDir(projectDir)) + t.Run("Media Cache Directory Calculation (with XDG_CACHE_HOME)", testCalculateMediaCacheDirWithXDG) + t.Run("Statuses Cache Directory Calculation", testCalculateStatusesCacheDir(projectDir)) + t.Run("Configuration Directory Calculation", testCalculateConfigDir(projectDir)) + t.Run("Configuration Directory Calculation (with XDG_CONFIG_HOME)", testCalculateConfigCacheDirWithXDG) +} - want := projectDir + "/test/cache/gotosocial.yellow-desert.social/media" +func testCalculateMediaCacheDir(projectDir string) func(t *testing.T) { + return func(t *testing.T) { + cacheRoot := filepath.Join(projectDir, "test", "cache") + instance := "http://gotosocial.yellow-desert.social" - if got != want { - t.Errorf("Unexpected media cache directory calculated: want %s, got %s", want, got) - } else { - t.Logf("Expected media cache directory calculated: got %s", got) + got, err := utilities.CalculateMediaCacheDir(cacheRoot, instance) + if err != nil { + t.Fatalf("Unable to calculate the media cache directory: %v", err) + } + + want := projectDir + "/test/cache/gotosocial.yellow-desert.social/media" + + if got != want { + t.Errorf("Unexpected media cache directory calculated: want %s, got %s", want, got) + } else { + t.Logf("Expected media cache directory calculated: got %s", got) + } } } -func TestCalculateMediaCacheDirWithXDG(t *testing.T) { - t.Setenv("XDG_CACHE_HOME", "/home/enbas/.cache") - +func testCalculateMediaCacheDirWithXDG(t *testing.T) { cacheRoot := "" instance := "https://gotosocial.yellow-desert.social" @@ -52,27 +63,58 @@ func TestCalculateMediaCacheDirWithXDG(t *testing.T) { } } -func TestCalculateStatusesCacheDir(t *testing.T) { - t.Parallel() +func testCalculateStatusesCacheDir(projectDir string) func(t *testing.T) { + return func(t *testing.T) { + cacheRoot := filepath.Join(projectDir, "test", "cache") + instance := "https://fedi.blue-mammoth.party" - projectDir, err := projectRoot() - if err != nil { - t.Fatalf("Unable to get the project root directory: %v", err) - } + got, err := utilities.CalculateStatusesCacheDir(cacheRoot, instance) + if err != nil { + t.Fatalf("Unable to calculate the statuses cache directory: %v", err) + } - cacheRoot := filepath.Join(projectDir, "test", "cache") - instance := "https://fedi.blue-mammoth.party" + want := projectDir + "/test/cache/fedi.blue-mammoth.party/statuses" - got, err := utilities.CalculateStatusesCacheDir(cacheRoot, instance) - if err != nil { - t.Fatalf("Unable to calculate the statuses cache directory: %v", err) - } - - want := projectDir + "/test/cache/fedi.blue-mammoth.party/statuses" - - if got != want { - t.Errorf("Unexpected statuses cache directory calculated: want %s, got %s", want, got) - } else { - t.Logf("Expected statuses cache directory calculated: got %s", got) + if got != want { + t.Errorf("Unexpected statuses cache directory calculated: want %s, got %s", want, got) + } else { + t.Logf("Expected statuses cache directory calculated: got %s", got) + } + } +} + +func testCalculateConfigDir(projectDir string) func(t *testing.T) { + return func(t *testing.T) { + configDir := filepath.Join(projectDir, "test", "config") + + got, err := utilities.CalculateConfigDir(configDir) + if err != nil { + t.Fatalf("Unable to calculate the config directory: %v", err) + } + + want := projectDir + "/test/config" + + if got != want { + t.Errorf("Unexpected config directory calculated: want %s, got %s", want, got) + } else { + t.Logf("Expected config directory calculated: got %s", got) + } + } +} + +func testCalculateConfigCacheDirWithXDG(t *testing.T) { + configDir := "" + + got, err := utilities.CalculateConfigDir(configDir) + if err != nil { + t.Fatalf("Unable to calculate the config directory: %v", err) + } + + want := "/home/enbas/.config/enbas" + + if got != want { + t.Errorf("Unexpected config directory calculated: want %s, got %s", want, got) + } else { + t.Logf("Expected config directory calculated: got %s", got) } } diff --git a/internal/utilities/utilities_test.go b/internal/utilities/utilities_test.go index b947314..6d16a25 100644 --- a/internal/utilities/utilities_test.go +++ b/internal/utilities/utilities_test.go @@ -7,8 +7,6 @@ import ( ) func TestGetFQDN(t *testing.T) { - t.Parallel() - cases := []struct { instance string want string