@@ -1060,6 +1060,30 @@ dev:
1060
1060
refresh:
1061
1061
cron: "0 0 * * *"
1062
1062
run_in_dev: true
1063
+ ` ,
1064
+ // model m1
1065
+ `m1.yaml` : `
1066
+ type: model
1067
+ sql: SELECT 1
1068
+ # Test that an empty property doesn't break it
1069
+ dev:
1070
+ ` ,
1071
+ // model m2
1072
+ `m2.yaml` : `
1073
+ type: model
1074
+ sql: SELECT 1
1075
+ # Test empty property in environment_overrides doesn't break it
1076
+ environment_overrides:
1077
+ dev:
1078
+ ` ,
1079
+ // model m3
1080
+ `m3.yaml` : `
1081
+ type: model
1082
+ sql: SELECT 1
1083
+ # Test environment_overrides
1084
+ environment_overrides:
1085
+ dev:
1086
+ sql: SELECT 2
1063
1087
` ,
1064
1088
})
1065
1089
@@ -1091,15 +1115,63 @@ dev:
1091
1115
},
1092
1116
}
1093
1117
1118
+ m1Base := & Resource {
1119
+ Name : ResourceName {Kind : ResourceKindModel , Name : "m1" },
1120
+ Paths : []string {"/m1.yaml" },
1121
+ ModelSpec : & runtimev1.ModelSpec {
1122
+ RefreshSchedule : & runtimev1.Schedule {RefUpdate : true },
1123
+ InputConnector : "duckdb" ,
1124
+ InputProperties : must (structpb .NewStruct (map [string ]any {"sql" : "SELECT 1" })),
1125
+ OutputConnector : "duckdb" ,
1126
+ ChangeMode : runtimev1 .ModelChangeMode_MODEL_CHANGE_MODE_RESET ,
1127
+ },
1128
+ }
1129
+
1130
+ m2Base := & Resource {
1131
+ Name : ResourceName {Kind : ResourceKindModel , Name : "m2" },
1132
+ Paths : []string {"/m2.yaml" },
1133
+ ModelSpec : & runtimev1.ModelSpec {
1134
+ RefreshSchedule : & runtimev1.Schedule {RefUpdate : true },
1135
+ InputConnector : "duckdb" ,
1136
+ InputProperties : must (structpb .NewStruct (map [string ]any {"sql" : "SELECT 1" })),
1137
+ OutputConnector : "duckdb" ,
1138
+ ChangeMode : runtimev1 .ModelChangeMode_MODEL_CHANGE_MODE_RESET ,
1139
+ },
1140
+ }
1141
+
1142
+ m3Base := & Resource {
1143
+ Name : ResourceName {Kind : ResourceKindModel , Name : "m3" },
1144
+ Paths : []string {"/m3.yaml" },
1145
+ ModelSpec : & runtimev1.ModelSpec {
1146
+ RefreshSchedule : & runtimev1.Schedule {RefUpdate : true },
1147
+ InputConnector : "duckdb" ,
1148
+ InputProperties : must (structpb .NewStruct (map [string ]any {"sql" : "SELECT 1" })),
1149
+ OutputConnector : "duckdb" ,
1150
+ ChangeMode : runtimev1 .ModelChangeMode_MODEL_CHANGE_MODE_RESET ,
1151
+ },
1152
+ }
1153
+
1154
+ m3Test := & Resource {
1155
+ Name : ResourceName {Kind : ResourceKindModel , Name : "m3" },
1156
+ Paths : []string {"/m3.yaml" },
1157
+ ModelSpec : & runtimev1.ModelSpec {
1158
+ RefreshSchedule : & runtimev1.Schedule {RefUpdate : true },
1159
+ InputConnector : "duckdb" ,
1160
+ InputProperties : must (structpb .NewStruct (map [string ]any {"sql" : "SELECT 2" })),
1161
+ OutputConnector : "duckdb" ,
1162
+ ChangeMode : runtimev1 .ModelChangeMode_MODEL_CHANGE_MODE_RESET ,
1163
+ },
1164
+ }
1165
+
1094
1166
// Parse without environment
1095
1167
p , err := Parse (ctx , repo , "" , "" , "duckdb" )
1096
1168
require .NoError (t , err )
1097
- requireResourcesAndErrors (t , p , []* Resource {s1Base }, nil )
1169
+ requireResourcesAndErrors (t , p , []* Resource {s1Base , m1Base , m2Base , m3Base }, nil )
1098
1170
1099
1171
// Parse in environment "dev"
1100
1172
p , err = Parse (ctx , repo , "" , "dev" , "duckdb" )
1101
1173
require .NoError (t , err )
1102
- requireResourcesAndErrors (t , p , []* Resource {s1Test }, nil )
1174
+ requireResourcesAndErrors (t , p , []* Resource {s1Test , m1Base , m2Base , m3Test }, nil )
1103
1175
}
1104
1176
1105
1177
func TestMetricsViewSecurity (t * testing.T ) {
0 commit comments