Browse Source

Fix webhook tests. (#1149)

pull/1150/head
Sebastian Stehle 2 years ago
committed by GitHub
parent
commit
ad7284e541
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 30
      tools/TestSuite/TestSuite.Shared/Fixtures/WebhookCatcherClient.cs
  2. 1
      tools/TestSuite/docker-compose-base.yml
  3. 3
      tools/TestSuite/docker-compose.yml
  4. 3
      tools/TestSuite/webhook-catcher/docker-compose.yml

30
tools/TestSuite/TestSuite.Shared/Fixtures/WebhookCatcherClient.cs

@ -26,14 +26,17 @@ public sealed class WebhookRequest
[JsonPropertyName("method")]
public string Method { get; set; }
[JsonPropertyName("content_base64")]
[JsonIgnore]
public string Content { get; set; }
[JsonIgnore]
public Dictionary<string, string> Headers { get; set; } = [];
[JsonPropertyName("request_payload_base64")]
public string EncodedContent { get; set; }
[JsonPropertyName("headers")]
public WebhookHeader[] HeaderValues { get; set; }
public WebhookHeader[] HeaderList { get; set; }
}
public sealed class WebhookHeader
@ -77,36 +80,37 @@ public sealed class WebhookCatcherClient
public async Task<(string, string)> CreateSessionAsync(
CancellationToken ct = default)
{
var response = await httpClient.PostAsJsonAsync("/api/session", new { }, ct);
var request = new { status_code = 200, };
var response = await httpClient.PostAsJsonAsync("/api/session", request, ct);
response.EnsureSuccessStatusCode();
var responseObj = await response.Content.ReadFromJsonAsync<WebhookSession>(ct);
return ($"http://{EndpointHost}:{EndpointPort}/{responseObj!.Uuid}", responseObj!.Uuid);
var json = await response.Content.ReadFromJsonAsync<WebhookSession>(ct);
return ($"http://{EndpointHost}:{EndpointPort}/{json!.Uuid}", json!.Uuid);
}
public async Task<WebhookRequest[]> GetRequestsAsync(string sessionId,
CancellationToken ct = default)
{
var responseObj = await httpClient.GetFromJsonAsync<WebhookRequest[]>($"/api/session/{sessionId}/requests", ct);
var response = await httpClient.GetFromJsonAsync<WebhookRequest[]>($"/api/session/{sessionId}/requests", ct);
foreach (var request in responseObj!)
foreach (var request in response!)
{
if (request.Content != null)
var content = request.EncodedContent;
if (content != null)
{
request.Content = Encoding.Default.GetString(Convert.FromBase64String(request.Content));
request.Content = Encoding.Default.GetString(Convert.FromBase64String(content));
}
if (request.HeaderValues != null)
if (request.HeaderList != null)
{
foreach (var header in request.HeaderValues)
foreach (var header in request.HeaderList)
{
request.Headers[header.Name] = header.Value;
}
}
}
return responseObj;
return response;
}
}

1
tools/TestSuite/docker-compose-base.yml

@ -1,4 +1,3 @@
version: '3'
services:
# Base configuration
squidex_base:

3
tools/TestSuite/docker-compose.yml

@ -1,4 +1,3 @@
version: '3'
services:
mongo:
image: mongo:latest
@ -75,7 +74,7 @@ services:
- mongo
webhookcatcher:
image: tarampampam/webhook-tester
image: tarampampam/webhook-tester:2
command: serve --port 1026
ports:
- "1026:1026"

3
tools/TestSuite/webhook-catcher/docker-compose.yml

@ -1,7 +1,6 @@
version: '3'
services:
webhookcatcher:
image: tarampampam/webhook-tester
image: tarampampam/webhook-tester:2
command: serve --port 1026
ports:
- "1026:1026"

Loading…
Cancel
Save