1// Copyright (C) 2019 Storj Labs, Inc. 2// See LICENSE for copying information. 3 4package trust_test 5 6import ( 7 "context" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 13 "storj.io/storj/storagenode/trust" 14) 15 16func TestStaticURLSource(t *testing.T) { 17 url := makeSatelliteURL("domain.test") 18 19 for _, tt := range []struct { 20 name string 21 url string 22 err string 23 entries []trust.Entry 24 }{ 25 { 26 name: "incomplete satellite URL", 27 url: "domain.test:7777", 28 err: "static source: invalid satellite URL: must contain an ID", 29 }, 30 { 31 name: "good satellite URL", 32 url: url.String(), 33 entries: []trust.Entry{ 34 { 35 SatelliteURL: url, 36 Authoritative: true, 37 }, 38 }, 39 }, 40 } { 41 tt := tt // quiet linting 42 t.Run(tt.name, func(t *testing.T) { 43 source, err := trust.NewStaticURLSource(tt.url) 44 if tt.err != "" { 45 require.EqualError(t, err, tt.err) 46 return 47 } 48 require.NoError(t, err) 49 50 require.True(t, source.Static(), "static source is not static") 51 require.Equal(t, tt.url, source.String(), "static source string should match url") 52 53 entries, err := source.FetchEntries(context.Background()) 54 require.NoError(t, err) 55 assert.Equal(t, tt.entries, entries) 56 }) 57 } 58} 59