package authentication import ( "os" "path/filepath" "testing" ) func TestWriteFileAtomic(t *testing.T) { dir := t.TempDir() file := filepath.Join(dir, "authentication.json") if err := writeFileAtomic(file, []byte("{\"a\":1}"), 0600); err != nil { t.Fatal(err) } if err := writeFileAtomic(file, []byte("{\"a\":2}"), 0600); err != nil { t.Fatal(err) } got, err := os.ReadFile(file) if err != nil { t.Fatal(err) } if string(got) != "{\"a\":2}" { t.Errorf("content = %q", got) } fi, err := os.Stat(file) if err != nil { t.Fatal(err) } if fi.Mode().Perm() != 0600 { t.Errorf("mode = %o, want 0600", fi.Mode().Perm()) } entries, err := os.ReadDir(dir) if err != nil { t.Fatal(err) } if len(entries) != 1 { t.Errorf("expected only the target file, found %d entries", len(entries)) } }