|
4 | 4 | "slices" |
5 | 5 | "testing" |
6 | 6 |
|
| 7 | + "github.com/Masterminds/semver/v3" |
7 | 8 | "github.com/ethereum/go-ethereum/common" |
8 | 9 | "github.com/stretchr/testify/require" |
9 | 10 |
|
@@ -633,3 +634,43 @@ func TestOverwriteWhitelistChangeset(t *testing.T) { |
633 | 634 | require.Empty(t, whitelist[selector1]) |
634 | 635 | }) |
635 | 636 | } |
| 637 | + |
| 638 | +func TestSetWhitelistOutputOmitsEnvironmentAddressRefs(t *testing.T) { |
| 639 | + t.Parallel() |
| 640 | + |
| 641 | + selector := chainselectors.TEST_90000001.Selector |
| 642 | + version := semver.MustParse("1.0.0") |
| 643 | + |
| 644 | + ds := datastore.NewMemoryDataStore() |
| 645 | + err := ds.Addresses().Add(datastore.AddressRef{ |
| 646 | + ChainSelector: selector, |
| 647 | + Address: "0x52b93FCA1F672800B5FdBCbDAF7c76646470C506", |
| 648 | + Type: datastore.ContractType("RBACTimeLock"), |
| 649 | + Version: version, |
| 650 | + Qualifier: "0x52b93FCA1F672800B5FdBCbDAF7c76646470C506-RBACTimeLock", |
| 651 | + }) |
| 652 | + require.NoError(t, err) |
| 653 | + |
| 654 | + env, err := environment.New(t.Context(), |
| 655 | + environment.WithEVMSimulated(t, []uint64{selector}), |
| 656 | + environment.WithDatastore(ds.Seal()), |
| 657 | + ) |
| 658 | + require.NoError(t, err) |
| 659 | + |
| 660 | + cfg := types.SetWhitelistConfig{ |
| 661 | + WhitelistByChain: map[uint64][]types.WhitelistAddress{ |
| 662 | + selector: {{ |
| 663 | + Address: common.HexToAddress(whitelistTestAddr1).Hex(), |
| 664 | + Description: "test", |
| 665 | + Labels: []string{"team"}, |
| 666 | + }}, |
| 667 | + }, |
| 668 | + } |
| 669 | + |
| 670 | + out, err := SetWhitelistChangeset.Apply(*env, cfg) |
| 671 | + require.NoError(t, err) |
| 672 | + |
| 673 | + refs, err := out.DataStore.Addresses().Fetch() |
| 674 | + require.NoError(t, err) |
| 675 | + require.Empty(t, refs, "output must not merge address refs from environment; pipeline merge would upsert them into address_refs.json") |
| 676 | +} |
0 commit comments