mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-26 21:16:06 +10:00
205 lines
4.8 KiB
Ruby
205 lines
4.8 KiB
Ruby
require "spec_helper"
|
|
|
|
describe License do
|
|
let(:gl_license) { build(:gitlab_license) }
|
|
let(:license) { build(:license, data: gl_license.export) }
|
|
|
|
describe "Validation" do
|
|
describe "Valid license" do
|
|
context "when the license is provided" do
|
|
it "is valid" do
|
|
expect(license).to be_valid
|
|
end
|
|
end
|
|
|
|
context "when no license is provided" do
|
|
before do
|
|
license.data = nil
|
|
end
|
|
|
|
it "is invalid" do
|
|
expect(license).to_not be_valid
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "Historical active user count" do
|
|
let(:active_user_count) { User.active.count + 10 }
|
|
let(:date) { License.current.starts_at }
|
|
let!(:historical_data) { HistoricalData.create!(date: date, active_user_count: active_user_count) }
|
|
|
|
context "when there is no active user count restriction" do
|
|
it "is valid" do
|
|
expect(license).to be_valid
|
|
end
|
|
end
|
|
|
|
context "when the active user count restriction is exceeded" do
|
|
before do
|
|
gl_license.restrictions = { active_user_count: active_user_count - 1 }
|
|
end
|
|
|
|
context "when the license started" do
|
|
it "is invalid" do
|
|
expect(license).to_not be_valid
|
|
end
|
|
end
|
|
|
|
context "after the license started" do
|
|
let(:date) { Date.today }
|
|
|
|
it "is valid" do
|
|
expect(license).to be_valid
|
|
end
|
|
end
|
|
|
|
context "in the year before the license started" do
|
|
let(:date) { License.current.starts_at - 6.months }
|
|
|
|
it "is invalid" do
|
|
expect(license).to_not be_valid
|
|
end
|
|
end
|
|
|
|
context "earlier than a year before the license started" do
|
|
let(:date) { License.current.starts_at - 2.years }
|
|
|
|
it "is valid" do
|
|
expect(license).to be_valid
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when the active user count restriction is not exceeded" do
|
|
before do
|
|
gl_license.restrictions = { active_user_count: active_user_count + 1 }
|
|
end
|
|
|
|
it "is valid" do
|
|
expect(license).to be_valid
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "Not expired" do
|
|
context "when the license doesn't expire" do
|
|
it "is valid" do
|
|
expect(license).to be_valid
|
|
end
|
|
end
|
|
|
|
context "when the license has expired" do
|
|
before do
|
|
gl_license.expires_at = Date.yesterday
|
|
end
|
|
|
|
it "is valid" do
|
|
expect(license).to_not be_valid
|
|
end
|
|
|
|
end
|
|
|
|
context "when the license has yet to expire" do
|
|
before do
|
|
gl_license.expires_at = Date.tomorrow
|
|
end
|
|
|
|
it "is valid" do
|
|
expect(license).to be_valid
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "Class methods" do
|
|
let!(:license) { License.last }
|
|
|
|
before do
|
|
License.reset_current
|
|
allow(License).to receive(:last).and_return(license)
|
|
end
|
|
|
|
describe ".current" do
|
|
context "when there is no license" do
|
|
let!(:license) { nil }
|
|
|
|
it "returns nil" do
|
|
expect(License.current).to be_nil
|
|
end
|
|
end
|
|
|
|
context "when the license is invalid" do
|
|
before do
|
|
allow(license).to receive(:valid?).and_return(false)
|
|
end
|
|
|
|
it "returns nil" do
|
|
expect(License.current).to be_nil
|
|
end
|
|
end
|
|
|
|
context "when the license is valid" do
|
|
it "returns the license" do
|
|
expect(License.current)
|
|
end
|
|
end
|
|
end
|
|
|
|
describe ".block_changes?" do
|
|
context "when there is no current license" do
|
|
before do
|
|
allow(License).to receive(:current).and_return(nil)
|
|
end
|
|
|
|
it "returns true" do
|
|
expect(License.block_changes?).to be_truthy
|
|
end
|
|
end
|
|
|
|
context "when the current license is set to block changes" do
|
|
before do
|
|
allow(license).to receive(:block_changes?).and_return(true)
|
|
end
|
|
|
|
it "returns true" do
|
|
expect(License.block_changes?).to be_truthy
|
|
end
|
|
end
|
|
|
|
context "when the current license doesn't block changes" do
|
|
it "returns false" do
|
|
expect(License.block_changes?).to be_falsey
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#license" do
|
|
context "when no data is provided" do
|
|
before do
|
|
license.data = nil
|
|
end
|
|
|
|
it "returns nil" do
|
|
expect(license.license).to be_nil
|
|
end
|
|
end
|
|
|
|
context "when corrupt license data is provided" do
|
|
before do
|
|
license.data = "whatever"
|
|
end
|
|
|
|
it "returns nil" do
|
|
expect(license.license).to be_nil
|
|
end
|
|
end
|
|
|
|
context "when valid license data is provided" do
|
|
it "returns the license" do
|
|
expect(license.license).to_not be_nil
|
|
end
|
|
end
|
|
end
|
|
end
|