mirror of
https://github.com/status-im/consul.git
synced 2025-01-09 05:23:04 +00:00
134aac7c26
* endpoints xds cluster configuration * resources test fix * fix reversion in resources_test * Update agent/proxycfg/api_gateway.go Co-authored-by: John Maguire <john.maguire@hashicorp.com> * gofmt * Modify getReadyUpstreams to filter upstreams by listener (#17410) Each listener would previously have all upstreams from any route that bound to the listener. This is problematic when a route bound to one listener also binds to other listeners and so includes upstreams for multiple listeners. The list for a given listener would then wind up including upstreams for other listeners. * Update agent/proxycfg/api_gateway.go Co-authored-by: Nathan Coleman <nathan.coleman@hashicorp.com> * Restore import blocking * Skip to next route if route has no upstreams * cleanup * change set from bool to empty struct --------- Co-authored-by: John Maguire <john.maguire@hashicorp.com> Co-authored-by: Nathan Coleman <nathan.coleman@hashicorp.com>
67 lines
2.5 KiB
Bash
67 lines
2.5 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load helpers
|
|
|
|
@test "api gateway proxy admin is up on :20000" {
|
|
retry_default curl -f -s localhost:20000/stats -o /dev/null
|
|
}
|
|
|
|
@test "api gateway should have been accepted and not conflicted" {
|
|
assert_config_entry_status Accepted True Accepted primary api-gateway api-gateway
|
|
assert_config_entry_status Conflicted False NoConflict primary api-gateway api-gateway
|
|
}
|
|
|
|
@test "api gateway should be bound to route one" {
|
|
assert_config_entry_status Bound True Bound primary http-route api-gateway-route-one
|
|
assert_upstream_has_endpoints_in_status 127.0.0.1:20000 s1 HEALTHY 1
|
|
}
|
|
|
|
@test "api gateway should be bound to route two" {
|
|
assert_config_entry_status Bound True Bound primary http-route api-gateway-route-two
|
|
}
|
|
|
|
@test "api gateway should be unbound to route three" {
|
|
assert_config_entry_status Bound False FailedToBind primary http-route api-gateway-route-three
|
|
}
|
|
|
|
@test "api gateway should be bound to route four" {
|
|
assert_config_entry_status Bound True Bound primary http-route api-gateway-route-four
|
|
}
|
|
|
|
@test "api gateway should be bound to route five" {
|
|
assert_config_entry_status Bound True Bound primary http-route api-gateway-route-five
|
|
}
|
|
|
|
@test "api gateway should be able to connect to s1 via route one with the proper host" {
|
|
run retry_long curl -H "Host: test.consul.example" -s -f -d hello localhost:9999
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" == *"hello"* ]]
|
|
}
|
|
|
|
@test "api gateway should not be able to connect to s1 via route one with a mismatched host" {
|
|
run retry_default sh -c "curl -H \"Host: foo.consul.example\" -sI -o /dev/null -w \"%{http_code}\" localhost:9999 | grep 404"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" == "404" ]]
|
|
}
|
|
|
|
@test "api gateway should be able to connect to s1 via route two with the proper host" {
|
|
run retry_long curl -H "Host: foo.bar.baz" -s -f -d hello localhost:9998
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" == *"hello"* ]]
|
|
}
|
|
|
|
@test "api gateway should be able to connect to s1 via route four with any subdomain of the listener host" {
|
|
run retry_long curl -H "Host: test.consul.example" -s -f -d hello localhost:9996
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" == *"hello"* ]]
|
|
run retry_long curl -H "Host: foo.consul.example" -s -f -d hello localhost:9996
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" == *"hello"* ]]
|
|
}
|
|
|
|
@test "api gateway should be able to connect to s1 via route five with the proper host" {
|
|
run retry_long curl -H "Host: foo.bar.baz" -s -f -d hello localhost:9995
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" == *"hello"* ]]
|
|
}
|