mirror of
https://github.com/neocities/neocities.git
synced 2025-08-22 00:50:56 +02:00
55 lines
1.7 KiB
Ruby
55 lines
1.7 KiB
Ruby
require_relative './environment.rb'
|
|
|
|
describe 'dashboard' do
|
|
describe 'create directory' do
|
|
|
|
describe 'logged in' do
|
|
include Capybara::DSL
|
|
include Capybara::Minitest::Assertions
|
|
|
|
before do
|
|
Capybara.reset_sessions!
|
|
@site = Fabricate :site
|
|
page.set_rack_session id: @site.id
|
|
end
|
|
|
|
after do
|
|
Capybara.default_driver = :rack_test
|
|
end
|
|
|
|
it 'records a dashboard access' do
|
|
_(@site.reload.dashboard_accessed).must_equal false
|
|
visit '/dashboard'
|
|
_(@site.reload.dashboard_accessed).must_equal true
|
|
end
|
|
|
|
it 'creates a base directory' do
|
|
visit '/dashboard'
|
|
click_link 'New Folder'
|
|
fill_in 'name', with: 'testimages'
|
|
#click_button 'Create'
|
|
all('#createDir button[type=submit]').first.click
|
|
_(page).must_have_content /testimages/
|
|
_(File.directory?(@site.files_path('testimages'))).must_equal true
|
|
end
|
|
|
|
it 'creates a new file' do
|
|
Capybara.default_driver = :selenium_chrome_headless_largewindow
|
|
random = SecureRandom.uuid.gsub('-', '')
|
|
|
|
page.set_rack_session id: @site.id
|
|
visit '/dashboard'
|
|
_(page).must_have_content('Home')
|
|
_(page).must_have_link('New File')
|
|
click_link 'New File'
|
|
# Wait for modal to appear
|
|
_(page).must_have_css('#createFile', visible: true)
|
|
fill_in 'filename', with: "#{random}.html"
|
|
find('#createFile .btn-Action').click
|
|
# Wait for the file to appear in the listing
|
|
_(page).must_have_content(/#{Regexp.escape(random)}\.html/)
|
|
_(File.exist?(@site.files_path("#{random}.html"))).must_equal true
|
|
end
|
|
end
|
|
end
|
|
end
|