Forge
csharp4405de34
1using System.Net.Http.Headers;
2using System.Net.Http.Json;
3using IntercomService.Contracts;
4
5namespace IntercomService.Tests;
6
7[Collection("IntercomApi")]
8public sealed class IdentityApiTests
9{
10 private readonly HttpClient _client;
11
12 public IdentityApiTests(IntercomWebApplicationFactory factory) =>
13 _client = factory.CreateClient();
14
15 [Fact]
16 public async Task Auth_providers_returns_list()
17 {
18 var providers = await _client.GetFromJsonAsync<List<AuthProviderDto>>("/api/v1/auth/providers");
19 Assert.NotNull(providers);
20 }
21
22 [Fact]
23 public async Task Dev_token_me_lists_teams_with_roles()
24 {
25 const string devToken = "dev-intercom-local-change-me";
26 _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", devToken);
27
28 var teamId = "identity-me-" + Guid.NewGuid().ToString("N")[..8];
29 var teamResponse = await _client.GetAsync($"/api/v1/teams/{teamId}");
30 teamResponse.EnsureSuccessStatusCode();
31
32 var me = await _client.GetFromJsonAsync<MeResponse>("/api/v1/auth/me");
33 Assert.NotNull(me);
34 Assert.Contains(me!.Teams, x => x.TeamId == teamId && x.TeamRole == "admin");
35 }
36
37 [Fact]
38 public async Task Workspace_resolve_empty_without_projects()
39 {
40 const string devToken = "dev-intercom-local-change-me";
41 _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", devToken);
42
43 await _client.GetAsync("/api/v1/teams/workspace-test-team");
44
45 var response = await _client.GetFromJsonAsync<WorkspaceContextResponse>(
46 "/api/v1/resolve/workspace-context?repo_url=" + Uri.EscapeDataString("github.com/example/repo"));
47 Assert.NotNull(response);
48 Assert.Equal(["github.com/example/repo"], response!.NormalizedRepoUrls);
49 Assert.Empty(response.Teams);
50 }
51}
52
View only · write via MCP/CIDE