From 5a38a9d86dd897e71dbb43e4db18623164fe65b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Rodr=C3=ADguez?= Date: Thu, 9 Nov 2017 19:55:09 -0300 Subject: [PATCH] Add spec examples for Gitlab::Gitaly::WikiService --- .../gitlab/gitaly_client/wiki_service_spec.rb | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 spec/lib/gitlab/gitaly_client/wiki_service_spec.rb diff --git a/spec/lib/gitlab/gitaly_client/wiki_service_spec.rb b/spec/lib/gitlab/gitaly_client/wiki_service_spec.rb new file mode 100644 index 00000000000..a9653027587 --- /dev/null +++ b/spec/lib/gitlab/gitaly_client/wiki_service_spec.rb @@ -0,0 +1,44 @@ +require 'spec_helper' + +describe Gitlab::GitalyClient::WikiService do + let(:project) { create(:project) } + let(:storage_name) { project.repository_storage } + let(:relative_path) { project.disk_path + '.git' } + let(:client) { described_class.new(project.repository) } + let(:commit) { create(:gitaly_commit) } + let(:page_version) { Gitaly::WikiPageVersion.new(format: 'markdown', commit: commit) } + let(:page_info) { { title: 'My Page', raw_data: 'a', version: page_version } } + + describe '#find_page' do + let(:response) do + [ + Gitaly::WikiFindPageResponse.new(page: Gitaly::WikiPage.new(page_info)), + Gitaly::WikiFindPageResponse.new(page: Gitaly::WikiPage.new(raw_data: 'b')) + ] + end + let(:wiki_page) { subject.first } + let(:wiki_page_version) { subject.last } + + subject { client.find_page(title: 'My Page', version: 'master', dir: '') } + + it 'sends a wiki_find_page message' do + expect_any_instance_of(Gitaly::WikiService::Stub) + .to receive(:wiki_find_page) + .with(gitaly_request_with_path(storage_name, relative_path), kind_of(Hash)) + .and_return([].each) + + subject + end + + it 'concatenates the raw data and returns a pair of WikiPage and WikiPageVersion' do + expect_any_instance_of(Gitaly::WikiService::Stub) + .to receive(:wiki_find_page) + .with(gitaly_request_with_path(storage_name, relative_path), kind_of(Hash)) + .and_return(response.each) + + expect(wiki_page.title).to eq('My Page') + expect(wiki_page.raw_data).to eq('ab') + expect(wiki_page_version.format).to eq('markdown') + end + end +end