summaryrefslogtreecommitdiff
path: root/spec/integration/klar_spec.rb
blob: 91c8b7f0165f4c8bb81c495f1913b164283b4e84 (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
# frozen_string_literal: true

RSpec.describe 'klar' do
  let(:scanner) { 'klar' }
  let(:project_fixture) { 'docker' }

  context "when scanning a vulnerable image" do
    let(:env) do
      {
        DOCKERFILE_PATH: project.path.join("minbox-Dockerfile"),
        DOCKER_IMAGE: "mokhan/minbox:latest"
      }
    end

    pending { expect(subject).to match_schema(:container_scanning) }

    specify do
      expect(subject['scan']['status']).to eql('success')
      expect(subject['vulnerabilities'].length).to be > 0
      expect(subject['vulnerabilities']).to all(include('category' => 'container_scanning'))
    end
  end

  context "when scanning a RHEL based image" do
    let(:env) do
      {
        DOCKERFILE_PATH: project.path.join("centos8-Dockerfile"),
        DOCKER_IMAGE: "centos:8"
      }
    end

    pending { expect(subject).to match_schema(:container_scanning) }
    specify { expect(subject['scan']['status']).to eql('success') }

    it "can shell out to `rpm`" do
      expect(docker.run(image: docker_image, project_path: project.path, env: env, command: 'rpm -q rpm')).to be(true)
    end
  end
end