Add progress bar model

This commit is contained in:
Javi Martín
2019-01-04 14:42:46 +01:00
committed by decabeza
parent c3c9b02220
commit eaea95ccfb
9 changed files with 205 additions and 1 deletions

View File

@@ -0,0 +1,97 @@
require "rails_helper"
describe ProgressBar do
let(:progress_bar) { build(:progress_bar) }
it "is valid" do
expect(progress_bar).to be_valid
end
it "is valid without a title" do
progress_bar.title = nil
expect(progress_bar).to be_valid
end
it "is not valid with a custom type" do
expect { progress_bar.kind = "terciary" }.to raise_exception(ArgumentError)
end
it "is not valid without a percentage" do
progress_bar.percentage = nil
expect(progress_bar).not_to be_valid
end
it "is not valid with a non-numeric percentage" do
progress_bar.percentage = "High"
expect(progress_bar).not_to be_valid
end
it "is not valid with a non-integer percentage" do
progress_bar.percentage = 22.83
expect(progress_bar).not_to be_valid
end
it "is not valid with a negative percentage" do
progress_bar.percentage = -1
expect(progress_bar).not_to be_valid
end
it "is not valid with a percentage bigger than 100" do
progress_bar.percentage = 101
expect(progress_bar).not_to be_valid
end
it "is valid with an integer percentage within the limits" do
progress_bar.percentage = 0
expect(progress_bar).to be_valid
progress_bar.percentage = 100
expect(progress_bar).to be_valid
progress_bar.percentage = 83
expect(progress_bar).to be_valid
end
it "is not valid without a progressable" do
progress_bar.progressable = nil
expect(progress_bar).not_to be_valid
end
it "cannot have another primary progress bar for the same progressable" do
progress_bar.save
duplicate = build(:progress_bar, progressable: progress_bar.progressable)
expect(duplicate).not_to be_valid
end
describe "secondary progress bar" do
let(:progress_bar) { build(:progress_bar, :secondary) }
it "is valid" do
expect(progress_bar).to be_valid
end
it "is invalid without a title" do
progress_bar.title = nil
expect(progress_bar).not_to be_valid
end
it "can have another secondary progress bar for the same progressable" do
progress_bar.save
duplicate = build(:progress_bar, progressable: progress_bar.progressable)
expect(duplicate).to be_valid
end
end
end