Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cleanup_environments_external_url_spec.rb « migrations « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 07ddaf3d38f9120e79a3710c441fdbd3378b8527 (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
require 'spec_helper'
require Rails.root.join('db', 'migrate', '20181108091549_cleanup_environments_external_url.rb')

describe CleanupEnvironmentsExternalUrl, :migration do
  let(:environments)    { table(:environments) }
  let(:invalid_entries) { environments.where(environments.arel_table[:external_url].matches('javascript://%')) }
  let(:namespaces)      { table(:namespaces) }
  let(:projects)        { table(:projects) }

  before do
    namespace = namespaces.create(name: 'foo', path: 'foo')
    project = projects.create!(namespace_id: namespace.id)

    environments.create!(id: 1, project_id: project.id, name: 'poisoned', slug: 'poisoned', external_url: 'javascript://alert("1")')
  end

  it 'clears every environment with a javascript external_url' do
    expect do
      subject.up
    end.to change { invalid_entries.count }.from(1).to(0)
  end

  it 'do not removes environments' do
    expect do
      subject.up
    end.not_to change { environments.count }
  end
end