github.com/crowdsecurity/crowdsec@v1.6.1/test/bats/97_ipv6_single.bats (about)

     1  #!/usr/bin/env bats
     2  # vim: ft=bats:list:ts=8:sts=4:sw=4:et:ai:si:
     3  
     4  set -u
     5  
     6  setup_file() {
     7      load "../lib/setup_file.sh"
     8      ./instance-data load
     9      ./instance-crowdsec start
    10      API_KEY=$(cscli bouncers add testbouncer -o raw)
    11      export API_KEY
    12      CROWDSEC_API_URL="http://localhost:8080"
    13      export CROWDSEC_API_URL
    14  }
    15  
    16  teardown_file() {
    17      load "../lib/teardown_file.sh"
    18  }
    19  
    20  setup() {
    21      load "../lib/setup.sh"
    22      if is_db_mysql; then sleep 0.5; fi
    23  }
    24  
    25  api() {
    26      URI="$1"
    27      curl -s -H "X-Api-Key: ${API_KEY}" "${CROWDSEC_API_URL}${URI}"
    28  }
    29  
    30  #----------
    31  
    32  @test "cli - first decisions list: must be empty" {
    33      # delete community pull
    34      rune -0 cscli decisions delete --all
    35      rune -0 cscli decisions list -o json
    36      assert_json '[]'
    37  }
    38  
    39  @test "adding decision for ip 1111:2222:3333:4444:5555:6666:7777:8888" {
    40      rune -0 cscli decisions add -i '1111:2222:3333:4444:5555:6666:7777:8888'
    41      assert_stderr --partial 'Decision successfully added'
    42  }
    43  
    44  @test "CLI - all decisions" {
    45      rune -0 cscli decisions list -o json
    46      rune -0 jq -r '.[].decisions[0].value' <(output)
    47      assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
    48  }
    49  
    50  @test "API - all decisions" {
    51      rune -0 api "/v1/decisions"
    52      rune -0 jq -r '.[].value' <(output)
    53      assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
    54  }
    55  
    56  @test "CLI - decisions for ip 1111:2222:3333:4444:5555:6666:7777:8888" {
    57      rune -0 cscli decisions list -i '1111:2222:3333:4444:5555:6666:7777:8888' -o json
    58      rune -0 jq -r '.[].decisions[0].value' <(output)
    59      assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
    60  }
    61  
    62  @test "API - decisions for ip 1111:2222:3333:4444:5555:6666:7777:888" {
    63      rune -0 api '/v1/decisions?ip=1111:2222:3333:4444:5555:6666:7777:8888'
    64      rune -0 jq -r '.[].value' <(output)
    65      assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
    66  }
    67  
    68  @test "CLI - decisions for ip 1211:2222:3333:4444:5555:6666:7777:8888" {
    69      rune -0 cscli decisions list -i '1211:2222:3333:4444:5555:6666:7777:8888' -o json
    70      assert_json '[]'
    71  }
    72  
    73  @test "API - decisions for ip 1211:2222:3333:4444:5555:6666:7777:888" {
    74      rune -0 api '/v1/decisions?ip=1211:2222:3333:4444:5555:6666:7777:8888'
    75      assert_output 'null'
    76  }
    77  
    78  @test "CLI - decisions for ip 1111:2222:3333:4444:5555:6666:7777:8887" {
    79      rune -0 cscli decisions list -i '1111:2222:3333:4444:5555:6666:7777:8887' -o json
    80      assert_json '[]'
    81  }
    82  
    83  @test "API - decisions for ip 1111:2222:3333:4444:5555:6666:7777:8887" {
    84      rune -0 api '/v1/decisions?ip=1111:2222:3333:4444:5555:6666:7777:8887'
    85      assert_output 'null'
    86  }
    87  
    88  @test "CLI - decisions for range 1111:2222:3333:4444:5555:6666:7777:8888/48" {
    89      rune -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/48' -o json
    90      assert_json '[]'
    91  }
    92  
    93  @test "API - decisions for range 1111:2222:3333:4444:5555:6666:7777:8888/48" {
    94      rune -0 api '/v1/decisions?range=1111:2222:3333:4444:5555:6666:7777:8888/48'
    95      assert_output 'null'
    96  }
    97  
    98  @test "CLI - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/48" {
    99      rune -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/48' --contained -o json
   100      rune -0 jq -r '.[].decisions[0].value' <(output)
   101      assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
   102  }
   103  
   104  @test "API - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/48" {
   105      rune -0 api '/v1/decisions?range=1111:2222:3333:4444:5555:6666:7777:8888/48&&contains=false'
   106      rune -0 jq -r '.[].value' <(output)
   107      assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
   108  }
   109  
   110  @test "CLI - decisions for range 1111:2222:3333:4444:5555:6666:7777:8888/64" {
   111      rune -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/64' -o json
   112      assert_json '[]'
   113  }
   114  
   115  @test "API - decisions for range 1111:2222:3333:4444:5555:6666:7777:8888/64" {
   116      rune -0 api '/v1/decisions?range=1111:2222:3333:4444:5555:6666:7777:8888/64'
   117      assert_output 'null'
   118  }
   119  
   120  @test "CLI - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/64" {
   121      rune -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/64' -o json --contained
   122      rune -0 jq -r '.[].decisions[0].value' <(output)
   123      assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
   124  }
   125  
   126  @test "API - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/64" {
   127      rune -0 api '/v1/decisions?range=1111:2222:3333:4444:5555:6666:7777:8888/64&&contains=false'
   128      rune -0 jq -r '.[].value' <(output)
   129      assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
   130  }
   131  
   132  @test "adding decision for ip 1111:2222:3333:4444:5555:6666:7777:8889" {
   133      rune -0 cscli decisions add -i '1111:2222:3333:4444:5555:6666:7777:8889'
   134      assert_stderr --partial 'Decision successfully added'
   135  }
   136  
   137  @test "deleting decision for ip 1111:2222:3333:4444:5555:6666:7777:8889" {
   138      rune -0 cscli decisions delete -i '1111:2222:3333:4444:5555:6666:7777:8889'
   139      assert_stderr --partial '1 decision(s) deleted'
   140  }
   141  
   142  @test "CLI - decisions for ip 1111:2222:3333:4444:5555:6666:7777:8889 after delete" {
   143      rune -0 cscli decisions list -i '1111:2222:3333:4444:5555:6666:7777:8889' -o json
   144      assert_json '[]'
   145  }
   146  
   147  @test "deleting decision for range 1111:2222:3333:4444:5555:6666:7777:8888/64" {
   148      rune -0 cscli decisions delete -r '1111:2222:3333:4444:5555:6666:7777:8888/64' --contained
   149      assert_stderr --partial '1 decision(s) deleted'
   150  }
   151  
   152  @test "CLI - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/64 after delete" {
   153      rune -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/64' -o json --contained
   154      assert_json '[]'
   155  }