]> git.giacomolli.uk - onechat/blobdiff - config_test.go
Log each change of the WhatsApp connection
[onechat] / config_test.go
index ae84c96d6580ef57d474732eb7473078f4258756..7ad0b4efd48bd91ca548a1d036ac6314217af447 100644 (file)
@@ -18,14 +18,14 @@ func TestLoadConfigGivesDefaultsWithoutAFile(t *testing.T) {
 
 func TestLoadConfigKeepsDefaultsForMissingFields(t *testing.T) {
        dir := t.TempDir()
 
 func TestLoadConfigKeepsDefaultsForMissingFields(t *testing.T) {
        dir := t.TempDir()
-       writeConfig(t, dir, `{"endpoint": "api", "compactor": {"effort": "xhigh"}}`)
+       configWriteTest(t, dir, `{"endpoint": "api", "compactor": {"effort": "xhigh"}}`)
 
        config, err := loadConfig(dir)
        require.NoError(t, err)
        require.Equal(t, Config{
 
        config, err := loadConfig(dir)
        require.NoError(t, err)
        require.Equal(t, Config{
-               Endpoint: endpointAPI,
+               Endpoint: configEndpointAPI,
                Compactor: ModelConfig{
                Compactor: ModelConfig{
-                       Model:  "gpt-6-luna",
+                       Model:  "gpt-6.1-sol",
                        Effort: "xhigh",
                },
        }, config)
                        Effort: "xhigh",
                },
        }, config)
@@ -36,18 +36,36 @@ func TestLoadConfigRejectsInvalidFiles(t *testing.T) {
                name string
                text string
        }{
                name string
                text string
        }{
-               {"unknown field", `{"endpont": "api"}`},
-               {"unknown nested field", `{"compactor": {"modle": "x"}}`},
-               {"endpoint URL", `{"endpoint": "https://example.com/v1/responses"}`},
-               {"empty model", `{"compactor": {"model": ""}}`},
-               {"second object", `{} {}`},
-               {"broken JSON", `{"endpoint": `},
+               {
+                       name: "unknown field",
+                       text: `{"endpont": "api"}`,
+               },
+               {
+                       name: "unknown nested field",
+                       text: `{"compactor": {"modle": "x"}}`,
+               },
+               {
+                       name: "endpoint URL",
+                       text: `{"endpoint": "https://example.com/v1/responses"}`,
+               },
+               {
+                       name: "empty model",
+                       text: `{"compactor": {"model": ""}}`,
+               },
+               {
+                       name: "second object",
+                       text: `{} {}`,
+               },
+               {
+                       name: "broken JSON",
+                       text: `{"endpoint": `,
+               },
        }
 
        for _, tc := range testCases {
                t.Run(tc.name, func(t *testing.T) {
                        dir := t.TempDir()
        }
 
        for _, tc := range testCases {
                t.Run(tc.name, func(t *testing.T) {
                        dir := t.TempDir()
-                       writeConfig(t, dir, tc.text)
+                       configWriteTest(t, dir, tc.text)
 
                        _, err := loadConfig(dir)
                        require.Error(t, err)
 
                        _, err := loadConfig(dir)
                        require.Error(t, err)
@@ -55,48 +73,7 @@ func TestLoadConfigRejectsInvalidFiles(t *testing.T) {
        }
 }
 
        }
 }
 
-func TestDataDirFollowsTheOrder(t *testing.T) {
-       root := t.TempDir()
-       testCases := []struct {
-               name string
-               dir  string
-               xdg  string
-               home string
-               want string
-       }{
-               {"ONECHAT_DIR first", filepath.Join(root, "a"), filepath.Join(root, "xdg"), root, filepath.Join(root, "a")},
-               {"absolute XDG_DATA_HOME", "", filepath.Join(root, "xdg"), root, filepath.Join(root, "xdg", "onechat")},
-               {"relative XDG_DATA_HOME ignored", "", "xdg", root, filepath.Join(root, ".local", "share", "onechat")},
-               {"home directory last", "", "", root, filepath.Join(root, ".local", "share", "onechat")},
-       }
-
-       for _, tc := range testCases {
-               t.Run(tc.name, func(t *testing.T) {
-                       t.Setenv("ONECHAT_DIR", tc.dir)
-                       t.Setenv("XDG_DATA_HOME", tc.xdg)
-                       t.Setenv("HOME", tc.home)
-
-                       dir, err := dataDir()
-                       require.NoError(t, err)
-                       require.Equal(t, tc.want, dir)
-
-                       info, err := os.Stat(dir)
-                       require.NoError(t, err)
-                       require.Equal(t, os.FileMode(0o700), info.Mode().Perm())
-               })
-       }
-}
-
-func TestDataDirFailsWithoutAHome(t *testing.T) {
-       t.Setenv("ONECHAT_DIR", "")
-       t.Setenv("XDG_DATA_HOME", "")
-       t.Setenv("HOME", "")
-
-       _, err := dataDir()
-       require.ErrorContains(t, err, "ONECHAT_DIR")
-}
-
-func writeConfig(t *testing.T, dir, text string) {
+func configWriteTest(t *testing.T, dir, text string) {
        t.Helper()
 
        err := os.WriteFile(filepath.Join(dir, "config.json"), []byte(text), 0o600)
        t.Helper()
 
        err := os.WriteFile(filepath.Join(dir, "config.json"), []byte(text), 0o600)