@@ -2,12 +2,11 @@ package migrations_test
22
33import (
44 "context"
5+ "database/sql"
56 "testing"
67
78 "github.com/stretchr/testify/require"
89
9- "github.com/operator-framework/operator-registry/pkg/api"
10- "github.com/operator-framework/operator-registry/pkg/sqlite"
1110 "github.com/operator-framework/operator-registry/pkg/sqlite/migrations"
1211)
1312
@@ -35,20 +34,31 @@ func TestRequiredApisUp(t *testing.T) {
3534 require .NoError (t , tx .Commit ())
3635
3736 // check that no required apis were extracted.
38- querier := sqlite .NewSQLLiteQuerierFromDb (db )
39- provided , required , err := querier .GetApisForEntry (context .TODO (), 1 )
37+ requiredQuery := `SELECT DISTINCT api.group_name, api.version, api.kind, api.plural FROM api
38+ INNER JOIN api_requirer ON (api.group_name=api_requirer.group_name AND api.version=api_requirer.version AND api.kind=api_requirer.kind)
39+ WHERE api_requirer.channel_entry_id=?`
40+ // check that no required apis were extracted.
41+ _ , err = db .Query (requiredQuery , 1 )
4042 require .Error (t , err )
41- require .Nil (t , provided )
42- require .Nil (t , required )
4343
4444 // Up the migration with backfill
4545 err = migrator .Up (context .TODO (), migrations .Only (migrations .RequiredApiMigrationKey ))
4646 require .NoError (t , err )
4747
4848 // check that required apis were extracted
49- bundle , err := querier . GetBundleForChannel ( context . TODO (), "etcd" , "alpha" )
49+ rows , err := db . Query ( requiredQuery , 1 )
5050 require .NoError (t , err )
51- require .Equal (t , []* api.GroupVersionKind {{Group :"etcd.database.coreos.com" , Version : "v1beta2" , Kind :"EtcdCluster" , Plural :"etcdclusters" }}, bundle .RequiredApis )
51+ var group sql.NullString
52+ var version sql.NullString
53+ var kind sql.NullString
54+ var plural sql.NullString
55+ rows .Next ()
56+ require .NoError (t , rows .Scan (& group , & version , & kind , & plural ))
57+ require .Equal (t , group .String , "etcd.database.coreos.com" )
58+ require .Equal (t , version .String , "v1beta2" )
59+ require .Equal (t , kind .String , "EtcdCluster" )
60+ require .Equal (t , plural .String , "etcdclusters" )
61+ require .NoError (t , rows .Close ())
5262}
5363
5464func TestRequiredApisDown (t * testing.T ) {
@@ -64,19 +74,29 @@ func TestRequiredApisDown(t *testing.T) {
6474 require .NoError (t , err )
6575
6676 // check that required apis were extracted from existing bundles
67- querier := sqlite .NewSQLLiteQuerierFromDb (db )
68- provided , required , err := querier .GetApisForEntry (context .TODO (), 1 )
77+ requiredQuery := `SELECT DISTINCT api.group_name, api.version, api.kind, api.plural FROM api
78+ INNER JOIN api_requirer ON (api.group_name=api_requirer.group_name AND api.version=api_requirer.version AND api.kind=api_requirer.kind)
79+ WHERE api_requirer.channel_entry_id=?`
80+
81+ rows , err := db .Query (requiredQuery , 1 )
6982 require .NoError (t , err )
70- require .Equal (t , provided , []* api.GroupVersionKind {})
71- require .Equal (t , []* api.GroupVersionKind {{Group :"etcd.database.coreos.com" , Version : "v1beta2" , Kind :"EtcdCluster" , Plural :"etcdclusters" }}, required )
83+ var group sql.NullString
84+ var version sql.NullString
85+ var kind sql.NullString
86+ var plural sql.NullString
87+ rows .Next ()
88+ require .NoError (t , rows .Scan (& group , & version , & kind , & plural ))
89+ require .Equal (t , group .String , "etcd.database.coreos.com" )
90+ require .Equal (t , version .String , "v1beta2" )
91+ require .Equal (t , kind .String , "EtcdCluster" )
92+ require .Equal (t , plural .String , "etcdclusters" )
93+ require .NoError (t , rows .Close ())
7294
7395 // run down migration
7496 err = migrator .Down (context .TODO (), migrations .Only (migrations .RequiredApiMigrationKey ))
7597 require .NoError (t , err )
7698
7799 // check that no required apis were extracted.
78- provided , required , err = querier . GetApisForEntry ( context . TODO () , 1 )
100+ _ , err = db . Query ( requiredQuery , 1 )
79101 require .Error (t , err )
80- require .Nil (t , provided )
81- require .Nil (t , required )
82102}
0 commit comments