diff options
Diffstat (limited to 'spec/graphql/mutations/commits/create_spec.rb')
-rw-r--r-- | spec/graphql/mutations/commits/create_spec.rb | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/spec/graphql/mutations/commits/create_spec.rb b/spec/graphql/mutations/commits/create_spec.rb index fb1baafe7bd..82a5e3a62f5 100644 --- a/spec/graphql/mutations/commits/create_spec.rb +++ b/spec/graphql/mutations/commits/create_spec.rb @@ -5,8 +5,9 @@ require 'spec_helper' RSpec.describe Mutations::Commits::Create do subject(:mutation) { described_class.new(object: nil, context: context, field: nil) } - let_it_be(:project) { create(:project, :public, :repository) } let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project, :public, :repository) } + let(:context) do GraphQL::Query::Context.new( query: OpenStruct.new(schema: nil), @@ -18,9 +19,10 @@ RSpec.describe Mutations::Commits::Create do specify { expect(described_class).to require_graphql_authorizations(:push_code) } describe '#resolve' do - subject { mutation.resolve(project_path: project.full_path, branch: branch, message: message, actions: actions) } + subject { mutation.resolve(project_path: project.full_path, branch: branch, start_branch: start_branch, message: message, actions: actions) } let(:branch) { 'master' } + let(:start_branch) { nil } let(:message) { 'Commit message' } let(:actions) do [ @@ -142,6 +144,29 @@ RSpec.describe Mutations::Commits::Create do end end + context 'when branch does not exist and a start branch is provided' do + let(:branch) { 'my-branch' } + let(:start_branch) { 'master' } + let(:actions) do + [ + { + action: 'create', + file_path: 'ANOTHER_FILE.md', + content: 'Bye' + } + ] + end + + it 'returns a new commit' do + expect(mutated_commit).to have_attributes(message: message, project: project) + expect(subject[:errors]).to be_empty + + expect_to_contain_deltas([ + a_hash_including(a_mode: '0', b_mode: '100644', new_file: true, new_path: 'ANOTHER_FILE.md') + ]) + end + end + context 'when message is not set' do let(:message) { nil } |