spec/distribute_spec.rb in xcjobs-0.0.1 vs spec/distribute_spec.rb in xcjobs-0.0.2

- old
+ new

@@ -1,9 +1,16 @@ require 'spec_helper' +require 'date' describe XCJobs::Distribute do before(:each) do + @commands = [] + + allow_any_instance_of(FileUtils).to receive(:sh) do |object, command| + @commands << command + end + allow_any_instance_of(XCJobs::Distribute).to receive(:upload) do |object, url, form_data| @url = url @form_data = form_data end @@ -124,9 +131,56 @@ it 'executes the appropriate commands' do subject.invoke expect(@url).to eq "https://api.crittercism.com/api_beta/dsym/#{credentials['app_id']}" expect(@form_data).to eq({ dsym: "@#{dsym_file}" }) + end + end + end + end + end + + describe XCJobs::Distribute::ITC do + describe 'define upload ipa task' do + let(:credentials) do + { username: 'kishikawakatsumi', + password:'password1234', + } + end + + let(:file) do + File.join('build', 'Example.ipa') + end + + let(:altool) { '/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool' } + + let!(:task) do + XCJobs::Distribute::ITC.new do |t| + t.username = credentials['username'] + t.password = credentials['password'] + t.file = file + end + end + + it 'configures the username' do + expect(task.username).to eq credentials['username'] + end + + it 'configures the password' do + expect(task.password).to eq credentials['password'] + end + + it 'configures the file path' do + expect(task.file).to eq file + end + + describe 'tasks' do + describe 'distribute:itc' do + subject { Rake.application['distribute:itc'] } + + it 'executes the appropriate commands' do + subject.invoke + expect(@commands).to eq [%["#{altool}" --upload-app --file "#{file}" --username #{credentials['username']} --password #{credentials['password']}]] end end end end end