@@ -113,6 +113,41 @@ func TestValidateSpecificLicenseMultiFile(t *testing.T) {
113113 t .Run ("NotApplicable" , licenseTest (dir , invalidMeta , validTime , ErrLicenseNotApplicable ))
114114}
115115
116+ func TestValidateTeamLicense (t * testing.T ) {
117+ publicKey = `de452e6028fe488f56ee0dfcf5b387ee773f03d24de66f00c40ec5b17085c549`
118+ licData := `{"license":"eyJsaWNlbnNlZF90byI6IlVOTElDRU5TRUQgVEVTVCIsInBsdWdpbnMiOlsidGVzdC10ZWFtLyoiXSwiaXNzdWVkX2F0IjoiMjAyNC0wMi0wNVQxNjozOTozMy4zMzkxMjZaIiwidmFsaWRfZnJvbSI6IjIwMjQtMDItMDVUMTY6Mzk6MzMuMzM5MTI2WiIsImV4cGlyZXNfYXQiOiIyMDI0LTAyLTA2VDE2OjM5OjMzLjMzOTEyNloifQ==","signature":"cba85dcbd48d909f92d6e84d1d56b47075484efb2a7db1c478fc09659bb498e2a761add3c743c2d9a50b82b29b1730600cd8f68d6571896ca7d08f3107751e07"}`
119+ validTime := time .Date (2024 , 2 , 5 , 18 , 0 , 0 , 0 , time .UTC )
120+ expiredTime := time .Date (2024 , 2 , 6 , 18 , 0 , 0 , 0 , time .UTC )
121+ invalidMeta := plugin.Meta {Team : "cloudquery" , Kind : "source" , Name : "test" }
122+ validMeta1 := plugin.Meta {Team : "test-team" , Kind : "source" , Name : "some-plugin" }
123+ validMeta2 := plugin.Meta {Team : "test-team" , Kind : "destination" , Name : "some-plugin2" }
124+
125+ t .Run ("SingleFile" , func (t * testing.T ) {
126+ dir := t .TempDir ()
127+ f := filepath .Join (dir , "testlicense.cqlicense" )
128+ if err := os .WriteFile (f , []byte (licData ), 0644 ); err != nil {
129+ require .NoError (t , err )
130+ }
131+
132+ t .Run ("Expired1" , licenseTest (f , validMeta1 , expiredTime , ErrLicenseExpired ))
133+ t .Run ("Expired2" , licenseTest (f , validMeta2 , expiredTime , ErrLicenseExpired ))
134+ t .Run ("Success1" , licenseTest (f , validMeta1 , validTime , nil ))
135+ t .Run ("Success2" , licenseTest (f , validMeta2 , validTime , nil ))
136+ t .Run ("NotApplicable" , licenseTest (f , invalidMeta , validTime , ErrLicenseNotApplicable ))
137+ })
138+ t .Run ("SingleDir" , func (t * testing.T ) {
139+ dir := t .TempDir ()
140+ if err := os .WriteFile (filepath .Join (dir , "testlicense.cqlicense" ), []byte (licData ), 0644 ); err != nil {
141+ require .NoError (t , err )
142+ }
143+ t .Run ("Expired1" , licenseTest (dir , validMeta1 , expiredTime , ErrLicenseExpired ))
144+ t .Run ("Expired2" , licenseTest (dir , validMeta2 , expiredTime , ErrLicenseExpired ))
145+ t .Run ("Success1" , licenseTest (dir , validMeta1 , validTime , nil ))
146+ t .Run ("Success2" , licenseTest (dir , validMeta2 , validTime , nil ))
147+ t .Run ("NotApplicable" , licenseTest (dir , invalidMeta , validTime , ErrLicenseNotApplicable ))
148+ })
149+ }
150+
116151func licenseTest (inputPath string , meta plugin.Meta , timeIs time.Time , expectError error ) func (t * testing.T ) {
117152 return func (t * testing.T ) {
118153 timeFunc = func () time.Time {
0 commit comments