github.com/crowdsecurity/crowdsec@v1.6.1/test/bats/99_lapi-stream-mode.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  }
    23  
    24  #----------
    25  
    26  api() {
    27      URI="$1"
    28      curl -s -H "X-Api-Key: ${API_KEY}" "${CROWDSEC_API_URL}${URI}"
    29  }
    30  
    31  @test "adding decisions for multiple ips" {
    32      rune -0 cscli decisions add -i '1111:2222:3333:4444:5555:6666:7777:8888'
    33      assert_stderr --partial 'Decision successfully added'
    34      rune -0 cscli decisions add -i '1.2.3.4'
    35      assert_stderr --partial 'Decision successfully added'
    36      rune -0 cscli decisions add -r '1.2.4.0/24'
    37      assert_stderr --partial 'Decision successfully added'
    38  }
    39  
    40  @test "stream start" {
    41      rune -0 api "/v1/decisions/stream?startup=true"
    42      if is_db_mysql; then sleep 3; fi
    43      rune -0 jq -r '.new' <(output)
    44      assert_output --partial '1111:2222:3333:4444:5555:6666:7777:8888'
    45      assert_output --partial '1.2.3.4'
    46      assert_output --partial '1.2.4.0/24'
    47  }
    48  
    49  @test "stream cont (add)" {
    50      rune -0 cscli decisions add -i '1.2.3.5'
    51      if is_db_mysql; then sleep 3; fi
    52      rune -0 api "/v1/decisions/stream"
    53      rune -0 jq -r '.new' <(output)
    54      assert_output --partial '1.2.3.5'
    55  }
    56  
    57  @test "stream cont (del)" {
    58      rune -0 cscli decisions delete -i '1.2.3.4'
    59      if is_db_mysql; then sleep 3; fi
    60      rune -0 api "/v1/decisions/stream"
    61      rune -0 jq -r '.deleted' <(output)
    62      assert_output --partial '1.2.3.4'
    63  }
    64  
    65  @test "stream restart" {
    66      rune -0 api "/v1/decisions/stream?startup=true"
    67      api_out=${output}
    68      rune -0 jq -r '.deleted' <(output)
    69      assert_output --partial '1.2.3.4'
    70      output=${api_out}
    71      rune -0 jq -r '.new' <(output)
    72      assert_output --partial '1111:2222:3333:4444:5555:6666:7777:8888'
    73      assert_output --partial '1.2.3.5'
    74      assert_output --partial '1.2.4.0/24'
    75  }