(t *testing.T)
| 850 | } |
| 851 | |
| 852 | func TestConnectorRef(t *testing.T) { |
| 853 | ctx := context.Background() |
| 854 | files := map[string]string{ |
| 855 | // rill.yaml |
| 856 | `rill.yaml`: ``, |
| 857 | // connector duckdb |
| 858 | `connectors/duckdb.yaml`: ` |
| 859 | driver: duckdb |
| 860 | `, |
| 861 | // model m1 |
| 862 | `models/m1.sql`: ` |
| 863 | SELECT 1 |
| 864 | `, |
| 865 | } |
| 866 | resources := []*Resource{ |
| 867 | // m1 |
| 868 | { |
| 869 | Name: ResourceName{Kind: ResourceKindModel, Name: "m1"}, |
| 870 | Paths: []string{"/models/m1.sql"}, |
| 871 | Refs: []ResourceName{{Kind: ResourceKindConnector, Name: "duckdb"}}, |
| 872 | ModelSpec: &runtimev1.ModelSpec{ |
| 873 | RefreshSchedule: &runtimev1.Schedule{RefUpdate: true}, |
| 874 | InputConnector: "duckdb", |
| 875 | InputProperties: must(structpb.NewStruct(map[string]any{"sql": strings.TrimSpace(files["models/m1.sql"])})), |
| 876 | OutputConnector: "duckdb", |
| 877 | ChangeMode: runtimev1.ModelChangeMode_MODEL_CHANGE_MODE_RESET, |
| 878 | }, |
| 879 | }, |
| 880 | // duckdb connector |
| 881 | { |
| 882 | Name: ResourceName{Kind: ResourceKindConnector, Name: "duckdb"}, |
| 883 | Paths: []string{"/connectors/duckdb.yaml"}, |
| 884 | ConnectorSpec: &runtimev1.ConnectorSpec{ |
| 885 | Driver: "duckdb", |
| 886 | }, |
| 887 | }, |
| 888 | } |
| 889 | repo := makeRepo(t, files) |
| 890 | p, err := Parse(ctx, repo, "", "", "duckdb", true) |
| 891 | require.NoError(t, err) |
| 892 | requireResourcesAndErrors(t, p, resources, nil) |
| 893 | } |
| 894 | |
| 895 | func TestConnectorDeletion(t *testing.T) { |
| 896 | ctx := context.Background() |
nothing calls this directly
no test coverage detected