Skip to content

Commit f516674

Browse files
committed
Update WikiMenuItem specs
1 parent 50a857a commit f516674

1 file changed

Lines changed: 23 additions & 42 deletions

File tree

spec/models/menu_items/wiki_menu_item_spec.rb

Lines changed: 23 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -31,85 +31,66 @@
3131
require "spec_helper"
3232

3333
RSpec.describe MenuItems::WikiMenuItem do
34-
before do
35-
@project = create(:project, enabled_module_names: %w[activity])
36-
@current = create(:user, login: "user1", mail: "user1@users.com")
34+
let(:project) { create(:project, :with_internal_wiki, enabled_module_names: ["activity"]) }
35+
let(:user) { create(:user) }
3736

38-
allow(User).to receive(:current).and_return(@current)
37+
before do
38+
allow(User).to receive(:current).and_return(user)
3939
end
4040

41-
it "creates a default wiki menu item when enabling the wiki" do
42-
expect(MenuItems::WikiMenuItem.all).not_to be_any
41+
it "creates a default wiki menu item when an internal wiki is added" do
42+
expect(described_class.count).to eq(0)
4343

44-
@project.enabled_modules << EnabledModule.new(name: "wiki")
45-
@project.reload
44+
expect { project }.to change(described_class, :count).by(1)
4645

47-
wiki_item = @project.wiki.wiki_menu_items.first
46+
wiki_item = project.wiki.wiki_menu_items&.first
4847
expect(wiki_item.name).to eql "wiki"
4948
expect(wiki_item.title).to eql "Wiki"
5049
expect(wiki_item.slug).to eql "wiki"
5150
expect(wiki_item.options[:index_page]).to be true
5251
expect(wiki_item.options[:new_wiki_page]).to be true
5352
end
5453

55-
it "changes title when a wikipage is renamed" do
56-
wikipage = create(:wiki_page, title: "Oldtitle")
54+
it "changes title when a wiki_page is renamed" do
55+
wiki_page = create(:wiki_page, title: "Oldtitle")
5756

58-
menu_item_1 = create(:wiki_menu_item, navigatable_id: wikipage.wiki.id,
59-
title: "Item 1",
60-
name: wikipage.slug)
57+
menu_item = create(:wiki_menu_item, navigatable_id: wiki_page.wiki.id, title: "Item 1", name: wiki_page.slug)
6158

62-
wikipage.title = "Newtitle"
63-
wikipage.save!
59+
wiki_page.update!(title: "Newtitle")
6460

65-
menu_item_1.reload
66-
expect(menu_item_1.title).to eq(wikipage.title)
61+
expect(menu_item.reload.title).to eq(wiki_page.title)
6762
end
6863

6964
it "does not allow duplicate sibling entries" do
70-
wikipage = create(:wiki_page, title: "Parent Page")
65+
wiki_page = create(:wiki_page, title: "Parent Page")
7166

7267
parent = create(
73-
:wiki_menu_item, navigatable_id: wikipage.wiki.id, title: "Item 1", name: wikipage.slug
68+
:wiki_menu_item, navigatable_id: wiki_page.wiki.id, title: "Item 1", name: wiki_page.slug
7469
)
75-
child_1 = parent.children.create name: "child-1", title: "Child 1"
76-
70+
parent.children.create name: "child-1", title: "Child 1"
7771
child_2 = parent.children.build name: "child-1", title: "Child 2"
7872

7973
expect { child_2.save! }.to raise_error /Name has already been taken/
8074
end
8175

8276
describe "it should destroy" do
83-
before do
84-
@project.enabled_modules << EnabledModule.new(name: "wiki")
85-
@project.reload
86-
87-
@menu_item_1 = create(:wiki_menu_item, wiki: @project.wiki,
88-
name: "Item 1",
89-
title: "Item 1")
90-
91-
@menu_item_2 = create(:wiki_menu_item, wiki: @project.wiki,
92-
name: "Item 2",
93-
parent_id: @menu_item_1.id,
94-
title: "Item 2")
95-
end
77+
let!(:first_menu_item) { create(:wiki_menu_item, wiki: project.wiki) }
78+
let!(:second_menu_item) { create(:wiki_menu_item, wiki: project.wiki, parent: first_menu_item) }
9679

9780
it "all children when deleting the parent" do
98-
@menu_item_1.destroy
81+
first_menu_item.destroy
9982

100-
expect { MenuItems::WikiMenuItem.find(@menu_item_1.id) }.to raise_error(ActiveRecord::RecordNotFound)
101-
expect { MenuItems::WikiMenuItem.find(@menu_item_2.id) }.to raise_error(ActiveRecord::RecordNotFound)
83+
expect { described_class.find(first_menu_item.id) }.to raise_error(ActiveRecord::RecordNotFound)
84+
expect { described_class.find(second_menu_item.id) }.to raise_error(ActiveRecord::RecordNotFound)
10285
end
10386

10487
describe "all items when destroying" do
10588
it "the associated project" do
106-
@project.destroy
107-
expect(MenuItems::WikiMenuItem.all).not_to be_any
89+
expect { project.destroy }.to change(described_class, :count).to(0)
10890
end
10991

11092
it "the associated wiki" do
111-
@project.wiki.destroy
112-
expect(MenuItems::WikiMenuItem.all).not_to be_any
93+
expect { project.wiki.destroy }.to change(described_class, :count).to(0)
11394
end
11495
end
11596
end

0 commit comments

Comments
 (0)