@@ -281,7 +281,12 @@ export class DocsEditViewPanel implements WebviewViewProvider {
281281 await this . resolveWebviewView ( this . panel ! , this . context ! , this . token ! ) ;
282282 } ;
283283
284- private getTestDataByModel ( message : any , modelName : string ) {
284+ private getTestDataByModel (
285+ message : any ,
286+ modelName : string ,
287+ project ?: DBTProject ,
288+ existingModel ?: any ,
289+ ) {
285290 const tests = message . updatedTests as undefined | TestMetaData [ ] ;
286291
287292 if ( ! tests ?. length ) {
@@ -320,7 +325,23 @@ export class DocsEditViewPanel implements WebviewViewProvider {
320325 } )
321326 . filter ( ( t ) => Boolean ( t ) ) ;
322327 const filteredTests = this . dbtTestService . removeDuplicateTests ( finalTests ) ;
323- return filteredTests . length ? filteredTests : undefined ;
328+ if ( ! filteredTests . length ) {
329+ return ;
330+ }
331+
332+ // dbt >= 1.8 renamed model-level `tests:` to `data_tests:`. Mirror the
333+ // column-level selection logic: prefer `data_tests` on new dbt versions,
334+ // but preserve `tests` if the user's YAML already uses that key.
335+ const dbtVersion = project ?. getDBTVersion ( ) ;
336+ if (
337+ dbtVersion &&
338+ gte ( dbtVersion . join ( "." ) , "1.8.0" ) &&
339+ existingModel ?. tests === undefined
340+ ) {
341+ return { data_tests : filteredTests } ;
342+ }
343+
344+ return { tests : filteredTests } ;
324345 }
325346
326347 private getTestMetadataKwArgs (
@@ -1001,8 +1022,15 @@ export class DocsEditViewPanel implements WebviewViewProvider {
10011022 const modelTests = this . getTestDataByModel (
10021023 message ,
10031024 model . get ( "name" ) as string ,
1025+ project ,
1026+ model . toJSON ( ) ,
1027+ ) ;
1028+ this . setOrDeleteInParsedDocument ( model , "tests" , modelTests ?. tests ) ;
1029+ this . setOrDeleteInParsedDocument (
1030+ model ,
1031+ "data_tests" ,
1032+ modelTests ?. data_tests ,
10041033 ) ;
1005- this . setOrDeleteInParsedDocument ( model , "tests" , modelTests ) ;
10061034 if ( ! model . get ( "columns" ) ) {
10071035 model . set ( "columns" , new YAMLSeq < DocumentationSchemaColumn > ( ) ) ;
10081036 }
0 commit comments