43 lines
1 KiB
Ruby
43 lines
1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'spec_helper'
|
||
|
|
||
|
RSpec.describe Gitlab::Pages::CacheControl do
|
||
|
it 'fails with invalid type' do
|
||
|
expect { described_class.new(type: :unknown, id: nil) }
|
||
|
.to raise_error(ArgumentError, "type must be :namespace or :project")
|
||
|
end
|
||
|
|
||
|
describe '.for_namespace' do
|
||
|
let(:subject) { described_class.for_namespace(1) }
|
||
|
|
||
|
it { expect(subject.cache_key).to eq('pages_domain_for_namespace_1') }
|
||
|
|
||
|
describe '#clear_cache' do
|
||
|
it 'clears the cache' do
|
||
|
expect(Rails.cache)
|
||
|
.to receive(:delete)
|
||
|
.with('pages_domain_for_namespace_1')
|
||
|
|
||
|
subject.clear_cache
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '.for_project' do
|
||
|
let(:subject) { described_class.for_project(1) }
|
||
|
|
||
|
it { expect(subject.cache_key).to eq('pages_domain_for_project_1') }
|
||
|
|
||
|
describe '#clear_cache' do
|
||
|
it 'clears the cache' do
|
||
|
expect(Rails.cache)
|
||
|
.to receive(:delete)
|
||
|
.with('pages_domain_for_project_1')
|
||
|
|
||
|
subject.clear_cache
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|