from werkzeug.security import generate_password_hash

from app import create_app
from app.db import execute, query_one, set_setting, utcnow


def test_core_routes_render():
    app = create_app({'TESTING': True, 'WTF_CSRF_ENABLED': False})
    row = query_one('SELECT * FROM admins WHERE username=?', ('routeadmin',))
    if row:
        admin_id = row['id']
    else:
        admin_id = execute('INSERT INTO admins(username,password_hash,created_at) VALUES (?,?,?)', ('routeadmin', generate_password_hash('password123'), utcnow()))
    set_setting('setup_complete','1')
    client = app.test_client()
    with client.session_transaction() as sess:
        sess['admin_id'] = admin_id
    for path in ['/', '/instagram', '/automations', '/automations/new', '/media', '/messages', '/logs', '/errors', '/debug', '/scheduler', '/health', '/settings', '/backup']:
        response = client.get(path)
        assert response.status_code == 200, path
