@ -133,20 +133,20 @@ func TestSQLList(t *testing.T) {
)
)
rows := mock . NewRows ( [ ] string {
rows := mock . NewRows ( [ ] string {
sqlReleaseTableKeyColumn ,
sqlReleaseTableNamespaceColumn ,
sqlReleaseTableBodyColumn ,
sqlReleaseTableBodyColumn ,
} )
} )
for _ , r := range releases {
for _ , r := range releases {
body , _ := encodeRelease ( r )
body , _ := encodeRelease ( r )
rows . AddRow ( body )
rows . AddRow ( "" , r . Namespace , body )
}
}
mock .
mock .
ExpectQuery ( regexp . QuoteMeta ( query ) ) .
ExpectQuery ( regexp . QuoteMeta ( query ) ) .
WithArgs ( sqlReleaseDefaultOwner , sqlDriver . namespace ) .
WithArgs ( sqlReleaseDefaultOwner , sqlDriver . namespace ) .
WillReturnRows ( rows ) . RowsWillBeClosed ( )
WillReturnRows ( rows ) . RowsWillBeClosed ( )
for _ , r := range releases {
mockGetReleaseCustomLabelsBatch ( mock , releases )
mockGetReleaseCustomLabels ( mock , "" , r . Namespace , r . Labels )
}
}
}
// list all deleted releases
// list all deleted releases
@ -401,6 +401,8 @@ func TestSqlQuery(t *testing.T) {
WithArgs ( "smug-pigeon" , sqlReleaseDefaultOwner , "unknown" , "default" ) .
WithArgs ( "smug-pigeon" , sqlReleaseDefaultOwner , "unknown" , "default" ) .
WillReturnRows (
WillReturnRows (
mock . NewRows ( [ ] string {
mock . NewRows ( [ ] string {
sqlReleaseTableKeyColumn ,
sqlReleaseTableNamespaceColumn ,
sqlReleaseTableBodyColumn ,
sqlReleaseTableBodyColumn ,
} ) ,
} ) ,
) . RowsWillBeClosed ( )
) . RowsWillBeClosed ( )
@ -410,13 +412,17 @@ func TestSqlQuery(t *testing.T) {
WithArgs ( "smug-pigeon" , sqlReleaseDefaultOwner , "deployed" , "default" ) .
WithArgs ( "smug-pigeon" , sqlReleaseDefaultOwner , "deployed" , "default" ) .
WillReturnRows (
WillReturnRows (
mock . NewRows ( [ ] string {
mock . NewRows ( [ ] string {
sqlReleaseTableKeyColumn ,
sqlReleaseTableNamespaceColumn ,
sqlReleaseTableBodyColumn ,
sqlReleaseTableBodyColumn ,
} ) . AddRow (
} ) . AddRow (
"" ,
deployedRelease . Namespace ,
deployedReleaseBody ,
deployedReleaseBody ,
) ,
) ,
) . RowsWillBeClosed ( )
) . RowsWillBeClosed ( )
mockGetReleaseCustomLabels ( mock , "" , deployedRelease . Namespace , deployedRelease . Labels )
mockGetReleaseCustomLabels Batch( mock , [ ] * rspb . Release { deployedRelease } )
query = fmt . Sprintf (
query = fmt . Sprintf (
"SELECT %s, %s, %s FROM %s WHERE %s = $1 AND %s = $2 AND %s = $3" ,
"SELECT %s, %s, %s FROM %s WHERE %s = $1 AND %s = $2 AND %s = $3" ,
@ -434,16 +440,21 @@ func TestSqlQuery(t *testing.T) {
WithArgs ( "smug-pigeon" , sqlReleaseDefaultOwner , "default" ) .
WithArgs ( "smug-pigeon" , sqlReleaseDefaultOwner , "default" ) .
WillReturnRows (
WillReturnRows (
mock . NewRows ( [ ] string {
mock . NewRows ( [ ] string {
sqlReleaseTableKeyColumn ,
sqlReleaseTableNamespaceColumn ,
sqlReleaseTableBodyColumn ,
sqlReleaseTableBodyColumn ,
} ) . AddRow (
} ) . AddRow (
"" ,
supersededRelease . Namespace ,
supersededReleaseBody ,
supersededReleaseBody ,
) . AddRow (
) . AddRow (
"" ,
deployedRelease . Namespace ,
deployedReleaseBody ,
deployedReleaseBody ,
) ,
) ,
) . RowsWillBeClosed ( )
) . RowsWillBeClosed ( )
mockGetReleaseCustomLabels ( mock , "" , supersededRelease . Namespace , supersededRelease . Labels )
mockGetReleaseCustomLabelsBatch ( mock , [ ] * rspb . Release { supersededRelease , deployedRelease } )
mockGetReleaseCustomLabels ( mock , "" , deployedRelease . Namespace , deployedRelease . Labels )
_ , err := sqlDriver . Query ( labelSetUnknown )
_ , err := sqlDriver . Query ( labelSetUnknown )
if err == nil {
if err == nil {
@ -577,6 +588,34 @@ func mockGetReleaseCustomLabels(mock sqlmock.Sqlmock, key string, namespace stri
eq . WillReturnRows ( returnRows ) . RowsWillBeClosed ( )
eq . WillReturnRows ( returnRows ) . RowsWillBeClosed ( )
}
}
func mockGetReleaseCustomLabelsBatch ( mock sqlmock . Sqlmock , releases [ ] * rspb . Release ) {
query := fmt . Sprintf (
regexp . QuoteMeta ( "SELECT %s, %s, %s, %s FROM %s WHERE %s IN (" ) + ".*" + regexp . QuoteMeta ( ") AND %s IN (" ) + ".*" + regexp . QuoteMeta ( ")" ) ,
sqlCustomLabelsTableReleaseNamespaceColumn ,
sqlCustomLabelsTableReleaseKeyColumn ,
sqlCustomLabelsTableKeyColumn ,
sqlCustomLabelsTableValueColumn ,
sqlCustomLabelsTableName ,
sqlCustomLabelsTableReleaseNamespaceColumn ,
sqlCustomLabelsTableReleaseKeyColumn ,
)
eq := mock . ExpectQuery ( query )
returnRows := mock . NewRows ( [ ] string {
sqlCustomLabelsTableReleaseNamespaceColumn ,
sqlCustomLabelsTableReleaseKeyColumn ,
sqlCustomLabelsTableKeyColumn ,
sqlCustomLabelsTableValueColumn ,
} )
for _ , rel := range releases {
for k , v := range rel . Labels {
returnRows . AddRow ( rel . Namespace , "" , k , v )
}
}
eq . WillReturnRows ( returnRows ) . RowsWillBeClosed ( )
}
func TestSqlCheckAppliedMigrations ( t * testing . T ) {
func TestSqlCheckAppliedMigrations ( t * testing . T ) {
cases := [ ] struct {
cases := [ ] struct {
migrationsToApply [ ] * migrate . Migration
migrationsToApply [ ] * migrate . Migration