mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
56 lines
No EOL
1.3 KiB
Ruby
56 lines
No EOL
1.3 KiB
Ruby
require_relative './environment.rb'
|
|
|
|
describe 'site page' do
|
|
include Capybara::DSL
|
|
|
|
after do
|
|
Capybara.default_driver = :rack_test
|
|
end
|
|
|
|
it '404s for missing site' do
|
|
visit '/site/failderp'
|
|
page.status_code.must_equal 404
|
|
page.must_have_content /not found/i
|
|
end
|
|
|
|
it 'loads site page' do
|
|
site = Fabricate :site
|
|
visit "/site/#{site.username}"
|
|
page.status_code.must_equal 200
|
|
page.must_have_content /#{site.username}/
|
|
end
|
|
|
|
it 'allows site blocking' do
|
|
Capybara.default_driver = :poltergeist
|
|
tag = SecureRandom.hex 10
|
|
blocked_site = Fabricate :site, new_tags_string: tag, created_at: 2.weeks.ago, site_changed: true
|
|
site = Fabricate :site
|
|
|
|
page.set_rack_session id: site.id
|
|
|
|
visit "/browse?tag=#{tag}"
|
|
|
|
page.find('.website-Gallery .username a')['href'].must_match /\/site\/#{blocked_site.username}/
|
|
|
|
visit "/site/#{blocked_site.username}"
|
|
|
|
click_link 'Block'
|
|
click_button 'Block Site'
|
|
|
|
visit "/browse?tag=#{tag}"
|
|
|
|
page.must_have_content /no active sites found/i
|
|
|
|
site.reload
|
|
site.blockings.length.must_equal 1
|
|
site.blockings.first.site_id.must_equal blocked_site.id
|
|
end
|
|
|
|
it '404s if site is banned' do
|
|
site = Fabricate :site
|
|
site.ban!
|
|
visit "/site/#{site.username}"
|
|
page.status_code.must_equal 404
|
|
page.must_have_content /not found/i
|
|
end
|
|
end |