summaryrefslogtreecommitdiff
path: root/features/config.feature
blob: 0b2ee7007d77ae806a7a7aaacd75f5fb25d7d296 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Feature: Download Provider Configuration

  The LEAP Provider exposes parts of its configuration through the API.

  This can be used to find out about services offered. The big picture can be retrieved from `/provider.json`. Which is available without authentication (see unauthenticated.feature).
  
  More detailed settings of the services are available after authentication. You can get a list of the available settings from `/1/configs.json`.

  Background:
    Given I authenticated
    Given I set headers:
      | Accept       | application/json |
      | Content-Type | application/json |
      | Authorization | Token token="MY_AUTH_TOKEN" |

  @tempfile
  Scenario: Fetch provider config
    Given there is a config for the provider
    When I send a GET request to "/provider.json"
    Then the response status should be "200"
    And the response should be that config

  Scenario: Missing provider config
    When I send a GET request to "/provider.json"
    Then the response status should be "404"
    And the response should have "error" with "not_found"

  Scenario: Fetch list of available configs
    When I send a GET request to "/1/configs.json"
    Then the response status should be "200"
    And the response should be:
      """
      {
        "services": {
          "soledad": "/1/configs/soledad-service.json",
          "eip": "/1/configs/eip-service.json",
          "smtp": "/1/configs/smtp-service.json"
        }
      }
      """
  
  Scenario: Attempt to fetch an invalid config
    When I send a GET request to "/1/configs/non-existing.json"
    Then the response status should be "403"

  Scenario: Attempt to fetch a config that is missing on the server
    When I send a GET request to "/1/configs/eip-service.json"
    Then the response status should be "404"

  @tempfile, @config
  Scenario: Attempt to fetch the EIP config
    Given there is a config for the eip
    When I send a GET request to "/1/configs/eip-service.json"
    Then the response status should be "200"
    And the response should be that config