github.com/maeglindeveloper/gqlgen@v0.13.1-0.20210413081235-57808b12a0a0/plugin/federation/federation_test.go (about) 1 package federation 2 3 import ( 4 "testing" 5 6 "github.com/99designs/gqlgen/codegen/config" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestWithEntities(t *testing.T) { 11 f, cfg := load(t, "test_data/gqlgen.yml") 12 13 require.Equal(t, []string{"ExternalExtension", "Hello", "World"}, cfg.Schema.Types["_Entity"].Types) 14 15 require.Equal(t, "findExternalExtensionByUpc", cfg.Schema.Types["Entity"].Fields[0].Name) 16 require.Equal(t, "findHelloByName", cfg.Schema.Types["Entity"].Fields[1].Name) 17 require.Equal(t, "findWorldByFooAndBar", cfg.Schema.Types["Entity"].Fields[2].Name) 18 19 require.NoError(t, f.MutateConfig(cfg)) 20 } 21 22 func TestNoEntities(t *testing.T) { 23 f, cfg := load(t, "test_data/nokey.yml") 24 25 err := f.MutateConfig(cfg) 26 require.NoError(t, err) 27 } 28 29 func load(t *testing.T, name string) (*federation, *config.Config) { 30 t.Helper() 31 32 cfg, err := config.LoadConfig(name) 33 require.NoError(t, err) 34 35 f := &federation{} 36 cfg.Sources = append(cfg.Sources, f.InjectSourceEarly()) 37 require.NoError(t, cfg.LoadSchema()) 38 39 if src := f.InjectSourceLate(cfg.Schema); src != nil { 40 cfg.Sources = append(cfg.Sources, src) 41 } 42 require.NoError(t, cfg.LoadSchema()) 43 44 require.NoError(t, cfg.Init()) 45 return f, cfg 46 }