83 lines
2.4 KiB
Plaintext
83 lines
2.4 KiB
Plaintext
require 'spec_helper'
|
|
|
|
describe JamTrackMixdown do
|
|
|
|
let(:user) {FactoryGirl.create(:user)}
|
|
let(:jam_track) {FactoryGirl.create(:jam_track)}
|
|
let(:settings) { {speed:5} }
|
|
|
|
it "can be created (factory girl)" do
|
|
mixdown = FactoryGirl.create(:jam_track_mixdown)
|
|
|
|
mixdown = JamTrackMixdown.find(mixdown.id)
|
|
mixdown.settings.should eq('{"speed":5}')
|
|
end
|
|
|
|
it "can be created" do
|
|
mixdown = JamTrackMixdown.create('abc', 'description', user, jam_track, settings)
|
|
mixdown.errors.any?.should == false
|
|
end
|
|
|
|
it "index" do
|
|
query, start, count = JamTrackMixdown.index({id: jam_track}, user)
|
|
|
|
query.length.should eq(0)
|
|
start.should be_nil
|
|
count.should eq(0)
|
|
|
|
mixdown = FactoryGirl.create(:jam_track_mixdown, user: user, jam_track: jam_track)
|
|
|
|
query, start, count = JamTrackMixdown.index({id: jam_track}, user)
|
|
query[0].should eq(mixdown)
|
|
start.should be_nil
|
|
count.should eq(1)
|
|
end
|
|
|
|
describe "settings" do
|
|
it "validates empty settings" do
|
|
invalid = FactoryGirl.build(:jam_track_mixdown, settings: {}.to_json)
|
|
invalid.save
|
|
invalid.errors.any?.should be_true
|
|
invalid.errors["settings"].should eq(["have nothing specified"])
|
|
end
|
|
|
|
it "validates speed numeric" do
|
|
invalid = FactoryGirl.build(:jam_track_mixdown, settings: {"speed": "5"}.to_json)
|
|
invalid.save
|
|
invalid.errors.any?.should be_true
|
|
invalid.errors["settings"].should eq(["has non-integer speed"])
|
|
end
|
|
|
|
it "validates pitch numeric" do
|
|
invalid = FactoryGirl.build(:jam_track_mixdown, settings: {"pitch": "5"}.to_json)
|
|
invalid.save
|
|
invalid.errors.any?.should be_true
|
|
invalid.errors["settings"].should eq(["has non-integer pitch"])
|
|
end
|
|
|
|
it "validates speed not-float" do
|
|
invalid = FactoryGirl.build(:jam_track_mixdown, settings: {"speed": 5.5}.to_json)
|
|
invalid.save
|
|
invalid.errors.any?.should be_true
|
|
invalid.errors["settings"].should eq(["has non-integer speed"])
|
|
end
|
|
|
|
it "validates pitch not-float" do
|
|
invalid = FactoryGirl.build(:jam_track_mixdown, settings: {"pitch": 10.5}.to_json)
|
|
invalid.save
|
|
invalid.errors.any?.should be_true
|
|
invalid.errors["settings"].should eq(["has non-integer pitch"])
|
|
end
|
|
end
|
|
|
|
|
|
mixdown.settings.should eq('{}')
|
|
end
|
|
|
|
it "can be created" do
|
|
mixdown = JamTrackMixdown.create('abc', user, jam_track, {})
|
|
mixdown.errors.any?.should == false
|
|
end
|
|
end
|
|
|