(t *testing.T)
| 694 | } |
| 695 | |
| 696 | func TestPluginConfig(t *testing.T) { |
| 697 | configFile := New("test-plugin") |
| 698 | defer os.Remove("test-plugin") |
| 699 | |
| 700 | // Populate some initial values |
| 701 | configFile.SetPluginConfig("plugin1", "data1", "some string") |
| 702 | configFile.SetPluginConfig("plugin1", "data2", "42") |
| 703 | configFile.SetPluginConfig("plugin2", "data3", "some other string") |
| 704 | |
| 705 | // Save a config file with some plugin config |
| 706 | err := configFile.Save() |
| 707 | assert.NilError(t, err) |
| 708 | |
| 709 | // Read it back and check it has the expected content |
| 710 | cfg, err := os.ReadFile("test-plugin") |
| 711 | assert.NilError(t, err) |
| 712 | golden.Assert(t, string(cfg), "plugin-config.golden") |
| 713 | |
| 714 | // Load it, resave and check again that the content is |
| 715 | // preserved through a load/save cycle. |
| 716 | configFile = New("test-plugin2") |
| 717 | defer os.Remove("test-plugin2") |
| 718 | assert.NilError(t, configFile.LoadFromReader(bytes.NewReader(cfg))) |
| 719 | err = configFile.Save() |
| 720 | assert.NilError(t, err) |
| 721 | cfg, err = os.ReadFile("test-plugin2") |
| 722 | assert.NilError(t, err) |
| 723 | golden.Assert(t, string(cfg), "plugin-config.golden") |
| 724 | |
| 725 | // Check that the contents was reloaded properly |
| 726 | v, ok := configFile.PluginConfig("plugin1", "data1") |
| 727 | assert.Assert(t, ok) |
| 728 | assert.Equal(t, v, "some string") |
| 729 | v, ok = configFile.PluginConfig("plugin1", "data2") |
| 730 | assert.Assert(t, ok) |
| 731 | assert.Equal(t, v, "42") |
| 732 | v, ok = configFile.PluginConfig("plugin1", "data3") |
| 733 | assert.Assert(t, !ok) |
| 734 | assert.Equal(t, v, "") |
| 735 | v, ok = configFile.PluginConfig("plugin2", "data3") |
| 736 | assert.Assert(t, ok) |
| 737 | assert.Equal(t, v, "some other string") |
| 738 | v, ok = configFile.PluginConfig("plugin2", "data4") |
| 739 | assert.Assert(t, !ok) |
| 740 | assert.Equal(t, v, "") |
| 741 | v, ok = configFile.PluginConfig("plugin3", "data5") |
| 742 | assert.Assert(t, !ok) |
| 743 | assert.Equal(t, v, "") |
| 744 | |
| 745 | // Add, remove and modify |
| 746 | configFile.SetPluginConfig("plugin1", "data1", "some replacement string") // replacing a key |
| 747 | configFile.SetPluginConfig("plugin1", "data2", "") // deleting a key |
| 748 | configFile.SetPluginConfig("plugin1", "data3", "some additional string") // new key |
| 749 | configFile.SetPluginConfig("plugin2", "data3", "") // delete the whole plugin, since this was the only data |
| 750 | configFile.SetPluginConfig("plugin3", "data5", "a new plugin") // add a new plugin |
| 751 | |
| 752 | err = configFile.Save() |
| 753 | assert.NilError(t, err) |
nothing calls this directly
no test coverage detected
searching dependent graphs…