Skip to content

Commit

Permalink
Add integration tests for version autocomplete
Browse files Browse the repository at this point in the history
  • Loading branch information
loic-sharma committed Aug 29, 2020
1 parent b3319d1 commit f3d868e
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 6 deletions.
10 changes: 4 additions & 6 deletions src/BaGet.Hosting/Controllers/SearchController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ public async Task<ActionResult<AutocompleteResponse>> AutocompleteAsync(
[FromQuery]string packageType = null,
CancellationToken cancellationToken = default)
{
// Default to autocomplete, just like nuget.org does
// If only "id" is provided, find package versions. Otherwise, find package IDs.
if (versionsQuery != null && autocompleteQuery == null)
{
var request = new VersionsRequest
{
IncludePrerelease = prerelease,
IncludeSemVer2 = semVerLevel == "2.0.0",
PackageId = versionsQuery,
};
request.PackageId = versionsQuery;

return await _searchService.ListPackageVersionsAsync(request, cancellationToken);
}
Expand All @@ -74,11 +74,9 @@ public async Task<ActionResult<AutocompleteResponse>> AutocompleteAsync(
IncludeSemVer2 = semVerLevel == "2.0.0",
PackageType = packageType,
Skip = skip,
Take = take
Take = take,
Query = autocompleteQuery,
};
request.Query = versionsQuery;

request.Query = autocompleteQuery;

return await _searchService.AutocompleteAsync(request, cancellationToken);
}
Expand Down
38 changes: 38 additions & 0 deletions tests/BaGet.Tests/ApiIntegrationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,44 @@ public async Task AutocompleteReturnsEmpty()
}", json);
}

[Fact]
public async Task AutocompleteVersionsReturnsOk()
{
await _factory.AddPackageAsync(PackageData.Default);

using var response = await _client.GetAsync("v3/autocomplete?id=DefaultPackage");
var content = await response.Content.ReadAsStreamAsync();
var json = PrettifyJson(content);

Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal(@"{
""@context"": {
""@vocab"": ""http://schema.nuget.org/schema#""
},
""totalHits"": 1,
""data"": [
""1.2.3""
]
}", json);
}

[Fact]
public async Task AutocompleteVersionsReturnsEmpty()
{
using var response = await _client.GetAsync("v3/autocomplete?id=PackageDoesNotExist");
var content = await response.Content.ReadAsStreamAsync();
var json = PrettifyJson(content);

Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal(@"{
""@context"": {
""@vocab"": ""http://schema.nuget.org/schema#""
},
""totalHits"": 0,
""data"": []
}", json);
}

[Fact]
public async Task VersionListReturnsOk()
{
Expand Down
24 changes: 24 additions & 0 deletions tests/BaGet.Tests/BaGetClientIntegrationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,30 @@ public async Task AutocompleteReturnsEmpty()
Assert.Empty(results);
}

[Fact]
public async Task AutocompleteVersions()
{
await _factory.AddPackageAsync(PackageData.Default);

var client = _clientFactory.CreateAutocompleteClient();
var results = await client.ListPackageVersionsAsync("DefaultPackage");

var result = Assert.Single(results.Data);

Assert.Equal(1, results.TotalHits);
Assert.Equal("1.2.3", result);
}

[Fact]
public async Task AutocompleteVersionsReturnsEmpty()
{
var client = _clientFactory.CreateAutocompleteClient();
var results = await client.ListPackageVersionsAsync("PackageDoesNotExist");

Assert.Empty(results.Data);
Assert.Equal(0, results.TotalHits);
}

[Fact]
public async Task VersionListReturnsResults()
{
Expand Down

0 comments on commit f3d868e

Please sign in to comment.