github.com/exercism/configlet@v3.9.3-0.20200318193232-c70be6269e71+incompatible/track/maintainer_config_test.go (about)

     1  package track
     2  
     3  import (
     4  	"fmt"
     5  	"io/ioutil"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestBrokenMaintainerConfig(t *testing.T) {
    13  	if _, err := NewMaintainerConfig("../fixtures/broken-maintainers/config/maintainers.json"); err == nil {
    14  		t.Errorf("Expected broken JSON")
    15  	}
    16  }
    17  
    18  func TestValidMaintainerConfig(t *testing.T) {
    19  	mc, err := NewMaintainerConfig("../fixtures/numbers/config/maintainers.json")
    20  	if err != nil {
    21  		t.Errorf("Expected valid JSON: %s", err)
    22  	}
    23  	assert.Equal(t, "alice", mc.Maintainers[0].Username)
    24  }
    25  
    26  func TestIgnoreMissingMaintainerConfig(t *testing.T) {
    27  	_, err := NewMaintainerConfig("../fixtures/no-such-file.json")
    28  	assert.NoError(t, err)
    29  }
    30  
    31  func TestNoChangeWhenMarshalingAcceptableMaintainerConfig(t *testing.T) {
    32  	filename := "../fixtures/format/formatted/config/maintainers.json"
    33  	src, err := ioutil.ReadFile(filepath.FromSlash(filename))
    34  	if err != nil {
    35  		t.Fatal(err)
    36  	}
    37  	mCfg := MaintainerConfig{}
    38  	if err := mCfg.LoadFromFile(filename); err != nil {
    39  		t.Fatal(err)
    40  	}
    41  	dst, err := mCfg.ToJSON()
    42  	if err != nil {
    43  		t.Fatal(err)
    44  	}
    45  
    46  	assert.Equal(t, string(src), fmt.Sprintf("%s\n", dst))
    47  }