spec/adyen-admin/skin_spec.rb in adyen-admin-0.0.7 vs spec/adyen-admin/skin_spec.rb in adyen-admin-0.0.8

- old
+ new

@@ -116,12 +116,80 @@ it "sets name" do Skin.stub(:is_skin_path?).and_return(true) Skin.new(:path => path).name.should == "example-test" end end + + context "with skin data file" do + let(:path) { "#{skin_fixtures}/DV3tf95f" } + let(:skin) { Skin.new(:path => path) } + + it "sets name" do + skin.name.should == "from-file" + end + + it "sets code" do + skin.code.should == "customCode" + end + + it "sets version" do + skin.version.should == 12 + end + + it "sets version_test" do + skin.version_test.should == 3 + end + + it "sets version_live" do + skin.version_live.should == 2 + end + end end + describe "#update" do + let(:path) { "#{skin_fixtures}/example-7hFAQnmt" } + + before do + skin.path = path + end + + after do + `rm -f #{path}/skin.yml` + end + + it "create skin.yml file" do + expect do + skin.update + end.to change { File.exists?("#{path}/skin.yml") } + end + + context "local skin" do + it "returns version" do + skin.version.should be_nil + end + + it "returns version" do + skin.version_live.should be_nil + end + + it "returns version" do + skin.version_test.should be_nil + end + end + + context "remote fails" do + before do + Adyen::Admin.stub(:get).and_raise(StandardError) + end + + it "returns version" do + skin.update + skin.version.should be_nil + end + end + end + describe "#download" do let(:zip_filename) { "#{skin.code}.zip" } after do `rm -rf #{zip_filename}` @@ -191,99 +259,122 @@ end end describe "#compile" do let(:skin_code) { "DV3tf95f" } - let(:skin) { Skin.new(:path => "#{skin_fixtures}/#{skin_code}") } + let(:path) { "#{skin_fixtures}/#{skin_code}" } + let(:skin) { Skin.new(:path => path) } let(:zip_filename) { skin.compile } def zip_contains(file) Zip::ZipFile.open(zip_filename) do |zipfile| - return true if zipfile.find_entry(File.join(skin_code, file)) + return true if zipfile.find_entry(File.join(skin.code, file)) end false end after do - `rm -f #{skin_code}.zip` + `rm -f #{skin.code}.zip` end - context "without base" do + context "no skin.yml" do before do - `mv #{skin_fixtures}/base #{skin_fixtures}/base2` + `mv #{path}/skin.yml #{path}/skin2.yml` end after do - `mv #{skin_fixtures}/base2 #{skin_fixtures}/base` + `mv #{path}/skin2.yml #{path}/skin.yml` end + context "without base" do + before do + `mv #{skin_fixtures}/base #{skin_fixtures}/base2` + end + + after do + `mv #{skin_fixtures}/base2 #{skin_fixtures}/base` + end + + it "includes screen file" do + zip_contains("css/screen.css").should be_true + end + + it "excludes print files" do + zip_contains("css/print.css").should_not be_true + end + end + it "includes screen file" do zip_contains("css/screen.css").should be_true end - it "excludes print files" do - zip_contains("css/print.css").should_not be_true + it "includes print file" do + zip_contains("css/print.css").should be_true end - end - it "includes screen file" do - zip_contains("css/screen.css").should be_true - end + it "excludes meta file" do + zip_contains("skin2.yml").should_not be_true + end - it "includes print file" do - zip_contains("css/print.css").should be_true + it "excludes skin file" do + zip_contains("skin.html.erb").should_not be_true + end end - it "excludes meta file" do - zip_contains("metadata.yml").should_not be_true - end - - it "excludes skin file" do - zip_contains("skin.html.erb").should_not be_true - end - context "no exlusion" do let(:zip_filename) { skin.compile(nil) } it "excludes meta file" do - zip_contains("metadata.yml").should be_true + zip_contains("skin.yml").should be_true end it "excludes skin file" do zip_contains("skin.html.erb").should be_true end end end describe "#upload" do + let(:path) { "#{skin_fixtures}/example-7hFAQnmt" } + after do `rm -f #{skin_code}.zip` + `rm -f #{path}/skin.yml` end context "valid set" do - it "increases version" do - skin.path = "#{skin_fixtures}/example-7hFAQnmt" + before do + skin.path = path + end + it "increases version" do expect do skin.upload - end.to change { skin.version }.by(1) + end.to change { skin.send(:remote_version) }.by(1) end + + it "updates skin data" do + skin.should_receive(:update) + + skin.upload + end end end - describe "#version" do + describe "#remote_version" do let(:skin) { Skin.new(:code => "Kx9axnRf", :name => "demo") } + let(:version) { 15 } it "returns uploaded value" do - skin.version.should == 14 + skin.send(:remote_version).should == version end it "returns test value" do - skin.version(:test).should == 14 + skin.send(:remote_version, :test).should == version end it "returns live value" do - skin.version(:live).should == 0 + skin.send(:remote_version, :live).should == 0 end end describe "#test_url" do it "returns url to test" do