{"id":15174128,"url":"https://github.com/joel-ling/s3-bdd","last_synced_at":"2026-01-29T03:42:53.299Z","repository":{"id":247694452,"uuid":"826089562","full_name":"joel-ling/s3-bdd","owner":"joel-ling","description":"A set of automated, self-documenting tests verifying the S3 API implemented by MinIO Server and Client, applying behaviour-driven development through the Cucumber framework for Golang","archived":false,"fork":false,"pushed_at":"2024-07-10T02:31:33.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T09:45:01.300Z","etag":null,"topics":["bdd","cloud","cucumber","gherkin","golang","s3","storage","testing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joel-ling.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-09T05:01:38.000Z","updated_at":"2024-07-10T02:31:36.000Z","dependencies_parsed_at":"2024-07-10T05:26:55.231Z","dependency_job_id":"d0168f00-5d2c-479a-b081-d75f911f5038","html_url":"https://github.com/joel-ling/s3-bdd","commit_stats":null,"previous_names":["joel-ling/s3-bdd"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Fs3-bdd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Fs3-bdd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Fs3-bdd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Fs3-bdd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joel-ling","download_url":"https://codeload.github.com/joel-ling/s3-bdd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239885621,"owners_count":19713333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bdd","cloud","cucumber","gherkin","golang","s3","storage","testing"],"created_at":"2024-09-27T11:24:32.454Z","updated_at":"2026-01-29T03:42:48.280Z","avatar_url":"https://github.com/joel-ling.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"```bash\n$ go test\n```\n```gherkin\nFeature: S3\n  In order to verify the effects of software interacting with the S3 API\n  As a software engineer practising behaviour-driven development\n  I need to establish some baseline observations\n\n  Scenario: Create and list buckets        # features/s3.feature:6\n    Given there is a new S3 server running # new-s3-server.go:20 -\u003e github.com/joel-ling/s3-bdd/test.newS3Server\n    When I create a bucket \"bucket0\"       # create-bucket.go:22 -\u003e github.com/joel-ling/s3-bdd/test.createBucket\n    And I list all the buckets I own       # list-buckets.go:18 -\u003e github.com/joel-ling/s3-bdd/test.listBuckets\n    Then I should see a bucket \"bucket0\"   # see-bucket.go:18 -\u003e github.com/joel-ling/s3-bdd/test.seeBucket\n    When I create a bucket \"bucket1\"       # create-bucket.go:22 -\u003e github.com/joel-ling/s3-bdd/test.createBucket\n    And I list all the buckets I own       # list-buckets.go:18 -\u003e github.com/joel-ling/s3-bdd/test.listBuckets\n    Then I should see a bucket \"bucket0\"   # see-bucket.go:18 -\u003e github.com/joel-ling/s3-bdd/test.seeBucket\n    And I should see a bucket \"bucket1\"    # see-bucket.go:18 -\u003e github.com/joel-ling/s3-bdd/test.seeBucket\n\n  Scenario: Put and list objects in bucket                      # features/s3.feature:16\n    Given there is a new S3 server running                      # new-s3-server.go:20 -\u003e github.com/joel-ling/s3-bdd/test.newS3Server\n    And there is a bucket \"bucket\"                              # create-bucket.go:22 -\u003e github.com/joel-ling/s3-bdd/test.createBucket\n    When I put in bucket \"bucket\" an object \"object0\" \"Hello, \" # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And I put in bucket \"bucket\" an object \"object1\" \"World!\"   # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And I list the objects in bucket \"bucket\"                   # list-objects.go:18 -\u003e github.com/joel-ling/s3-bdd/test.listObjects\n    Then I should see an object \"object0\" of size 7 bytes       # see-object.go:19 -\u003e github.com/joel-ling/s3-bdd/test.seeObject\n    And I should see an object \"object1\" of size 6 bytes        # see-object.go:19 -\u003e github.com/joel-ling/s3-bdd/test.seeObject\n\n  Scenario: List objects with prefix                                # features/s3.feature:25\n    Given there is a new S3 server running                          # new-s3-server.go:20 -\u003e github.com/joel-ling/s3-bdd/test.newS3Server\n    And there is a bucket \"bucket\"                                  # create-bucket.go:22 -\u003e github.com/joel-ling/s3-bdd/test.createBucket\n    And there is in bucket \"bucket\" an object \"A\" \"Hello, \"         # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And there is in bucket \"bucket\" an object \"objectB\" \"World!\"    # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And there is in bucket \"bucket\" an object \"C\" \"Hello, \"         # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And there is in bucket \"bucket\" an object \"objectD\" \"World!\"    # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    When I list the objects in bucket \"bucket\" with prefix \"object\" # list-objects-prefix.go:18 -\u003e github.com/joel-ling/s3-bdd/test.listObjectsPrefix\n    Then I should see an object \"objectB\" of size 6 bytes           # see-object.go:19 -\u003e github.com/joel-ling/s3-bdd/test.seeObject\n    And I should see an object \"objectD\" of size 6 bytes            # see-object.go:19 -\u003e github.com/joel-ling/s3-bdd/test.seeObject\n\n  Scenario: List objects, starting after                          # features/s3.feature:36\n    Given there is a new S3 server running                        # new-s3-server.go:20 -\u003e github.com/joel-ling/s3-bdd/test.newS3Server\n    And there is a bucket \"bucket\"                                # create-bucket.go:22 -\u003e github.com/joel-ling/s3-bdd/test.createBucket\n    And there is in bucket \"bucket\" an object \"3\" \"World!\"        # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And there is in bucket \"bucket\" an object \"1\" \"World!\"        # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And there is in bucket \"bucket\" an object \"2\" \"Hello, \"       # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And there is in bucket \"bucket\" an object \"0\" \"Hello, \"       # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    When I list the objects in bucket \"bucket\" starting after \"1\" # list-objects-after.go:19 -\u003e github.com/joel-ling/s3-bdd/test.listObjectsAfter\n    Then I should see an object \"2\" of size 7 bytes               # see-object.go:19 -\u003e github.com/joel-ling/s3-bdd/test.seeObject\n    And I should see an object \"3\" of size 6 bytes                # see-object.go:19 -\u003e github.com/joel-ling/s3-bdd/test.seeObject\n\n  Scenario: Get non-existent object                                # features/s3.feature:47\n    Given there is a new S3 server running                         # new-s3-server.go:20 -\u003e github.com/joel-ling/s3-bdd/test.newS3Server\n    And there is a bucket \"bucket\"                                 # create-bucket.go:22 -\u003e github.com/joel-ling/s3-bdd/test.createBucket\n    When I get from bucket \"bucket\" an object \"object\"             # get-object.go:19 -\u003e github.com/joel-ling/s3-bdd/test.getObject\n    Then I should see an error \"The specified key does not exist.\" # see-error.go:18 -\u003e github.com/joel-ling/s3-bdd/test.seeError\n\n  Scenario: Put and get object                                       # features/s3.feature:53\n    Given there is a new S3 server running                           # new-s3-server.go:20 -\u003e github.com/joel-ling/s3-bdd/test.newS3Server\n    And there is a bucket \"bucket\"                                   # create-bucket.go:22 -\u003e github.com/joel-ling/s3-bdd/test.createBucket\n    When I put in bucket \"bucket\" an object \"object\" \"Hello, World!\" # put-object.go:23 -\u003e github.com/joel-ling/s3-bdd/test.putObject\n    And I get from bucket \"bucket\" an object \"object\"                # get-object.go:19 -\u003e github.com/joel-ling/s3-bdd/test.getObject\n    Then I should see content \"Hello, World!\"                        # see-content.go:18 -\u003e github.com/joel-ling/s3-bdd/test.seeContent\n    And I should see no error                                        # see-no-error.go:18 -\u003e github.com/joel-ling/s3-bdd/test.seeNoError\n```\n```txt\n6 scenarios (6 passed)\n43 steps (43 passed)\n2.969250143s\nPASS\nok  \tgithub.com/joel-ling/s3-bdd\t2.976s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoel-ling%2Fs3-bdd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoel-ling%2Fs3-bdd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoel-ling%2Fs3-bdd/lists"}