summaryrefslogtreecommitdiff
path: root/yarns/700-artifact-store.yarn
blob: 2dcea2e915b7da58f6342d9f17c8cb1c1488bb66 (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
<!--

Copyright 2017-2018 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/>.

-->

# Artifact store

This scenario tests the artifact store API to store and retrieve
blobs. At this stage the artifact store is the simplest possible; so
simple, in fact, it will certainly change in the future.

    SCENARIO artifact store

Set up the artifact store.

    GIVEN an RSA key pair for token signing
    AND artifact store config uses blobs at the blob directory
    AND an access token for user with scopes
    ... uapi_blobs_id_put
    ... uapi_blobs_id_get
    AND a running artifact store

Try to get a non-existent blob. It should result in an error.

    WHEN user retrieves /blobs/cake from artifact store
    THEN result has status code 404

Create and store a blob, retrieve it and verify we get it back intack.

    WHEN user creates a blob named cake with random data
    AND user sends blob cake to artifact store as /blobs/cake
    THEN result has status code 200
    
    WHEN user retrieves /blobs/cake from artifact store
    THEN result has status code 200
    AND body is the same as the blob cake

    FINALLY stop artifact store