summaryrefslogtreecommitdiff
path: root/yarns/600-unauthz.yarn
blob: ab334043e2b6954857c6439bb400496793337121 (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!--

Copyright 2017-2019 Lars Wirzenius

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

-->

# Unauthorized requests

This scenario make unauthorized requests and checks the right error is
returned.

    SCENARIO unauthorized requests

Set up the controller.

    GIVEN an access token for user with scopes
    ... uapi_projects_get
    ... uapi_projects_id_delete
    ... uapi_projects_post
    ... uapi_projects_id_status_put
    ... uapi_projects_id_status_get
    ... uapi_projects_id_builds_get
    ... uapi_workers_id_get
    ... uapi_builds_get
    ... uapi_builds_id_get
    ... uapi_logs_id_get
    AND a running ick controller

    WHEN user makes request POST /projects with a valid token and body
    ... {
    ...     "project": "rome",
    ...     "pipelines": [
    ...         {
    ...             "pipeline": "construct",
    ...             "actions": [
    ...                 { "shell": "day 1" },
    ...                 { "shell": "day 2" }
    ...             ]
    ...         }
    ...     ]
    ... }
    THEN result has status code 201

    GIVEN an access token for outsider with scopes
    ... uapi_version_get
    WHEN outsider makes request POST /projects 
    ... with an invalid token and body {}
    THEN result has status code 401

    WHEN outsider makes request GET /builds with an invalid token
    THEN result has status code 401

    WHEN outsider makes request
    ... POST /workers with an invalid token and body [}
    THEN result has status code 401

    WHEN outsider makes request
    ... GET /work with an invalid token
    THEN result has status code 401

    WHEN outsider makes request
    ... GET /workers with an invalid token
    THEN result has status code 401

    WHEN outsider makes request
    ... GET /builds with an invalid token
    THEN result has status code 401

    WHEN outsider makes request GET /logs/1 with an invalid token
    THEN result has status code 401

    WHEN outsider makes request POST /work with an invalid token and body {}
    THEN result has status code 401

    WHEN user makes request DELETE /projects/rome
    WHEN user makes request GET /projects
    THEN body matches {"projects":[]}

    FINALLY stop ick controller