uprawnienia do stacji i usuwanie firm

This commit is contained in:
Mateusz Gruszczyński
2026-07-13 15:17:14 +02:00
parent 5f6e4770c1
commit 6671ef5bcc
4 changed files with 137 additions and 19 deletions
+52
View File
@@ -200,3 +200,55 @@ def test_openapi_contains_password_flow(tmp_path):
password_flow = spec['components']['securitySchemes']['oauth2Password']['flows']['password']
assert password_flow['tokenUrl'] == '/api/auth/token'
assert '/api/auth/token' in spec['paths']
def test_admin_can_delete_empty_company(tmp_path):
from app.extensions import db
from app.models import CompanySettings
app = make_app(tmp_path, "delete-company.db")
client = app.test_client()
client.post('/api/auth/login', data={'email':'admin@example.com','password':'admin123!'})
with app.app_context():
company = CompanySettings(name='Firma do usunięcia', region='mazowieckie')
db.session.add(company)
db.session.commit()
company_id = company.id
response = client.delete(f'/api/companies/{company_id}')
assert response.status_code == 200
assert response.json['ok'] is True
with app.app_context():
assert db.session.get(CompanySettings, company_id) is None
def test_company_with_users_cannot_be_deleted(tmp_path):
from app.extensions import db
from app.models import CompanySettings, User
app = make_app(tmp_path, "delete-company-blocked.db")
client = app.test_client()
client.post('/api/auth/login', data={'email':'admin@example.com','password':'admin123!'})
with app.app_context():
company = CompanySettings(name='Firma z użytkownikiem', region='mazowieckie')
db.session.add(company)
db.session.flush()
user = User(name='Pracownik', email='pracownik@example.com', role='user', company_id=company.id)
user.set_password('Haslo123!')
db.session.add(user)
db.session.commit()
company_id = company.id
response = client.delete(f'/api/companies/{company_id}')
assert response.status_code == 409
assert 'użytkowników' in response.json['message']
def test_company_settings_show_station_access_and_favorite_pagination(tmp_path):
app = make_app(tmp_path, "company-station-ui.db")
client = app.test_client()
client.post('/login', data={'email':'admin@example.com','password':'admin123!'})
html = client.get('/admin/companies').get_data(as_text=True)
assert 'Konfiguruj dostęp' in html
assert 'data-page-size="10"' in html
assert 'favorite-pagination' in html
assert 'Zapisz ulubione' in html
assert 'Usuń firmę' in html