2025-05-26 16:18:20 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
|
|
require 'rails_helper'
|
|
|
|
|
|
|
|
|
|
RSpec.describe 'Authentication UI', type: :system do
|
|
|
|
|
let(:user) { create(:user, password: 'password123') }
|
|
|
|
|
|
|
|
|
|
before do
|
|
|
|
|
stub_request(:any, 'https://api.github.com/repos/Freika/dawarich/tags')
|
|
|
|
|
.to_return(status: 200, body: '[{"name": "1.0.0"}]', headers: {})
|
|
|
|
|
|
|
|
|
|
# Configure email for testing
|
|
|
|
|
ActionMailer::Base.default_options = { from: 'test@example.com' }
|
|
|
|
|
ActionMailer::Base.delivery_method = :test
|
|
|
|
|
ActionMailer::Base.perform_deliveries = true
|
|
|
|
|
ActionMailer::Base.deliveries.clear
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe 'Account UI' do
|
|
|
|
|
it 'shows the user email in the UI when signed in' do
|
|
|
|
|
sign_in_user(user)
|
|
|
|
|
|
2025-05-29 06:22:08 -04:00
|
|
|
expect(page).to have_current_path(map_path)
|
2025-05-26 16:18:20 -04:00
|
|
|
expect(page).to have_css('summary', text: user.email)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe 'Self-hosted UI' do
|
|
|
|
|
context 'when self-hosted mode is enabled' do
|
|
|
|
|
before do
|
|
|
|
|
allow(DawarichSettings).to receive(:self_hosted?).and_return(true)
|
|
|
|
|
stub_const('SELF_HOSTED', true)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
it 'does not show registration links in the login UI' do
|
|
|
|
|
visit new_user_session_path
|
2025-05-29 06:22:08 -04:00
|
|
|
|
2025-05-26 16:18:20 -04:00
|
|
|
expect(page).not_to have_link('Register')
|
|
|
|
|
expect(page).not_to have_link('Sign up')
|
|
|
|
|
expect(page).not_to have_content('Register a new account')
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|