gpm/lib/api_test.go

84 lines
2.6 KiB
Go

package lib
import (
"reflect"
"testing"
)
func TestGetPackageInfo(t *testing.T) {
tests := []struct {
name string
inputName string
VersionCountExpected int
want PackageResponse
wantVersion string
wantErr bool
}{
{
name: "testcafe-browser-provider-puppeteer",
inputName: "testcafe-browser-provider-puppeteer",
VersionCountExpected: 8,
wantVersion: "1.0.1",
want: PackageResponse{
Name: "testcafe-browser-provider-puppeteer",
Versions: map[string]PackageRelease{
"1.0.1": PackageRelease{
Name: "testcafe-browser-provider-puppeteer",
VersionNumber: "1.0.1",
ID: "testcafe-browser-provider-puppeteer@1.0.1",
Dependencies: map[string]string{
"babel-runtime": "^6.11.6",
"puppeteer": "^0.10.2",
},
DevDependencies: map[string]string{
"babel-eslint": "^6.1.2",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-transform-runtime": "^6.12.0",
"babel-preset-es2015": "^6.13.2",
"babel-preset-es2015-loose": "^7.0.0",
"babel-preset-stage-3": "^6.11.0",
"del": "^2.0.0",
"gulp": "^3.9.0",
"gulp-babel": "^6.1.2",
"gulp-eslint": "^3.0.1",
"gulp-mocha": "^3.0.1",
"node-version": "^1.0.0",
"publish-please": "^2.1.4",
},
Dist: Distribution{
Sum: "5bd7be2a401aec28fe9bef0b9aa9886bd56fd811",
Tarball: "https://registry.npmjs.org/testcafe-browser-provider-puppeteer/-/testcafe-browser-provider-puppeteer-1.0.1.tgz",
},
},
},
},
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := GetPackageInfo(tt.inputName)
if (err != nil) != tt.wantErr {
t.Errorf("GetPackageInfo() error = %v, wantErr %v", err, tt.wantErr)
return
}
if len(got.Versions) != tt.VersionCountExpected {
t.Errorf("got %d, expected %d", len(got.Versions), tt.VersionCountExpected)
}
wantVersion := tt.want.Versions[tt.wantVersion]
gotVersion, gotOk := got.Versions[tt.wantVersion]
if !gotOk {
t.Errorf("could not find version in response: %s", tt.wantVersion)
}
if !reflect.DeepEqual(gotVersion, wantVersion) {
t.Errorf("-----\ngot: \t%+v\nwant:\t%+v", gotVersion, wantVersion)
}
})
}
}