| 666 | } |
| 667 | |
| 668 | func TestSaveWithRelativeSymlink(t *testing.T) { |
| 669 | dir := fs.NewDir(t, t.Name(), fs.WithFile("real-config.json", `{}`)) |
| 670 | defer dir.Remove() |
| 671 | |
| 672 | symLink := dir.Join("config.json") |
| 673 | relativeRealFile := "real-config.json" |
| 674 | realFile := dir.Join(relativeRealFile) |
| 675 | err := os.Symlink(relativeRealFile, symLink) |
| 676 | assert.NilError(t, err) |
| 677 | |
| 678 | configFile := New(symLink) |
| 679 | |
| 680 | err = configFile.Save() |
| 681 | assert.NilError(t, err) |
| 682 | |
| 683 | fi, err := os.Lstat(symLink) |
| 684 | assert.NilError(t, err) |
| 685 | assert.Assert(t, fi.Mode()&os.ModeSymlink != 0, "expected %s to be a symlink", symLink) |
| 686 | |
| 687 | cfg, err := os.ReadFile(symLink) |
| 688 | assert.NilError(t, err) |
| 689 | assert.Check(t, is.Equal(string(cfg), "{\n \"auths\": {}\n}")) |
| 690 | |
| 691 | cfg, err = os.ReadFile(realFile) |
| 692 | assert.NilError(t, err) |
| 693 | assert.Check(t, is.Equal(string(cfg), "{\n \"auths\": {}\n}")) |
| 694 | } |
| 695 | |
| 696 | func TestPluginConfig(t *testing.T) { |
| 697 | configFile := New("test-plugin") |