Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Braha Stoll <alexbrahastoll@gmail.com>2016-12-19 07:34:35 +0300
committerAlex Braha Stoll <alexbrahastoll@gmail.com>2016-12-31 21:55:50 +0300
commitf25344e36e9c1b0d0df2211b82b26c6515e96c31 (patch)
treeabbcce871499f4bec7fe737289def2ff5943683a /spec/models/wiki_page_spec.rb
parent7f914ec73f9bdb3d2d4e51d48906a36186f496e3 (diff)
Change WikiPage.group_by_directory to order by directory and file alphabetical order
Diffstat (limited to 'spec/models/wiki_page_spec.rb')
-rw-r--r--spec/models/wiki_page_spec.rb30
1 files changed, 26 insertions, 4 deletions
diff --git a/spec/models/wiki_page_spec.rb b/spec/models/wiki_page_spec.rb
index 91d5fccce60..374849e1932 100644
--- a/spec/models/wiki_page_spec.rb
+++ b/spec/models/wiki_page_spec.rb
@@ -17,17 +17,22 @@ describe WikiPage, models: true do
context 'when there are pages' do
before do
- create_page('page_1', 'content')
+ create_page('dir_1/dir_1_1/page_3', 'content')
create_page('dir_1/page_2', 'content')
- create_page('dir_1/dir_2/page_3', 'content')
+ create_page('dir_2/page_5', 'content')
+ create_page('dir_2/page_4', 'content')
+ create_page('page_1', 'content')
end
it 'returns a hash in which keys are directories and values are their pages' do
page_1 = wiki.find_page('page_1')
page_2 = wiki.find_page('dir_1/page_2')
- page_3 = wiki.find_page('dir_1/dir_2/page_3')
+ page_3 = wiki.find_page('dir_1/dir_1_1/page_3')
+ page_4 = wiki.find_page('dir_2/page_4')
+ page_5 = wiki.find_page('dir_2/page_5')
expected_grouped_pages = {
- '/' => [page_1], '/dir_1' => [page_2], '/dir_1/dir_2' => [page_3]
+ '/' => [page_1], '/dir_1' => [page_2], '/dir_1/dir_1_1' => [page_3],
+ '/dir_2' => [page_4, page_5]
}
grouped_pages = WikiPage.group_by_directory(wiki.pages)
@@ -39,6 +44,23 @@ describe WikiPage, models: true do
expect(slugs).to match_array(expected_slugs)
end
end
+
+ it 'returns a hash in which keys (directories) are sorted by alphabetical position' do
+ expected_ordered_directories = ['/', '/dir_1', '/dir_1/dir_1_1', '/dir_2']
+
+ grouped_pages = WikiPage.group_by_directory(wiki.pages)
+
+ expect(grouped_pages.keys).to eq(expected_ordered_directories)
+ end
+
+ it 'returns a hash in which values (pages) are sorted by alphabetical position' do
+ expected_ordered_page_slugs = ['dir_2/page_4', 'dir_2/page_5']
+
+ grouped_pages = WikiPage.group_by_directory(wiki.pages)
+
+ dir_2_page_slugs = grouped_pages.fetch('/dir_2').map(&:slug)
+ expect(dir_2_page_slugs).to eq(expected_ordered_page_slugs)
+ end
end
end