Module: GdsApi::TestHelpers::Router

Defined in:
lib/gds_api/test_helpers/router.rb

Constant Summary collapse

ROUTER_API_ENDPOINT =
Plek.current.find("router-api")

Instance Method Summary collapse

Instance Method Details

#stub_all_router_registrationObject


32
33
34
35
36
# File 'lib/gds_api/test_helpers/router.rb', line 32

def stub_all_router_registration
  stub_request(:put, %r{\A#{ROUTER_API_ENDPOINT}/backends/[a-z0-9-]+\z})
  stub_request(:put, "#{ROUTER_API_ENDPOINT}/routes")
  stub_request(:post, "#{ROUTER_API_ENDPOINT}/routes/commit")
end

#stub_gone_route_registration(path, type) ⇒ Object


77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/gds_api/test_helpers/router.rb', line 77

def stub_gone_route_registration(path, type)
  route = {
    route: {
      incoming_path: path,
      route_type: type,
      handler: "gone",
    },
  }

  register_stub = stub_route_put(route)
  commit_stub = stub_router_commit
  [register_stub, commit_stub]
end

#stub_redirect_registration(path, type, destination, redirect_type, segments_mode = nil) ⇒ Object


60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/gds_api/test_helpers/router.rb', line 60

def stub_redirect_registration(path, type, destination, redirect_type, segments_mode = nil)
  redirect = {
    route: {
      incoming_path: path,
      route_type: type,
      handler: "redirect",
      redirect_to: destination,
      redirect_type: redirect_type,
      segments_mode: segments_mode,
    },
  }

  register_stub = stub_route_put(redirect)
  commit_stub = stub_router_commit
  [register_stub, commit_stub]
end

#stub_route_registration(path, type, backend_id) ⇒ Object


45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/gds_api/test_helpers/router.rb', line 45

def stub_route_registration(path, type, backend_id)
  route = {
    route: {
      incoming_path: path,
      route_type: type,
      handler: "backend",
      backend_id: backend_id,
    },
  }

  register_stub = stub_route_put(route)
  commit_stub = stub_router_commit
  [register_stub, commit_stub]
end

#stub_router_backend_registration(backend_id, backend_url) ⇒ Object


38
39
40
41
42
43
# File 'lib/gds_api/test_helpers/router.rb', line 38

def stub_router_backend_registration(backend_id, backend_url)
  backend = { "backend" => { "backend_url" => backend_url } }
  stub_http_request(:put, "#{ROUTER_API_ENDPOINT}/backends/#{backend_id}")
      .with(body: backend.to_json)
      .to_return(status: 201)
end

#stub_router_commitObject


91
92
93
# File 'lib/gds_api/test_helpers/router.rb', line 91

def stub_router_commit
  stub_http_request(:post, "#{ROUTER_API_ENDPOINT}/routes/commit")
end

#stub_router_doesnt_have_route(path, bearer_token = ENV["ROUTER_API_BEARER_TOKEN"]) ⇒ Object


16
17
18
# File 'lib/gds_api/test_helpers/router.rb', line 16

def stub_router_doesnt_have_route(path, bearer_token = ENV["ROUTER_API_BEARER_TOKEN"])
  stub_get_route(path, bearer_token).to_return(status: 404)
end

#stub_router_has_backend_route(path, backend_id:, route_type: "exact", disabled: false) ⇒ Object


20
21
22
# File 'lib/gds_api/test_helpers/router.rb', line 20

def stub_router_has_backend_route(path, backend_id:, route_type: "exact", disabled: false)
  stub_router_has_route(path, handler: "backend", backend_id: backend_id, disabled: disabled, route_type: route_type)
end

#stub_router_has_gone_route(path, route_type: "exact", disabled: false) ⇒ Object


28
29
30
# File 'lib/gds_api/test_helpers/router.rb', line 28

def stub_router_has_gone_route(path, route_type: "exact", disabled: false)
  stub_router_has_route(path, handler: "gone", route_type: route_type, disabled: disabled)
end

#stub_router_has_redirect_route(path, redirect_to:, redirect_type: "permanent", route_type: "exact", disabled: false) ⇒ Object


24
25
26
# File 'lib/gds_api/test_helpers/router.rb', line 24

def stub_router_has_redirect_route(path, redirect_to:, redirect_type: "permanent", route_type: "exact", disabled: false)
  stub_router_has_route(path, handler: "redirect", redirect_to: redirect_to, redirect_type: redirect_type, disabled: disabled, route_type: route_type)
end

#stub_router_has_route(path, route, bearer_token = ENV["ROUTER_API_BEARER_TOKEN"]) ⇒ Object


8
9
10
11
12
13
14
# File 'lib/gds_api/test_helpers/router.rb', line 8

def stub_router_has_route(path, route, bearer_token = ENV["ROUTER_API_BEARER_TOKEN"])
  stub_get_route(path, bearer_token).to_return(
    status: 200,
    body: route.to_json,
    headers: { "Content-Type" => "application/json" },
  )
end