o
    8\j                     @  s   d Z ddlmZ ddlZddlZddlmZ ee j	d Z
ejdee
 ejdZedur;eeds;ejd= ddlmZ G d	d
 d
ejZedkrVejdd dS dS )z8Standalone application-factory and runtime route checks.    )annotationsN)Path   platform__path__)
create_appc                   @  s8   e Zd Zedd Zdd Zdd Zdd Zd	d
 ZdS )StartupChecksc                 C  s    t ddd| _| j | _d S )NTF)TESTINGCHECK_CONTROL_DB_READINESS)r   apptest_clientclient)cls r    tests/platform/startup_checks.py
setUpClass   s   zStartupChecks.setUpClassc                 C  sF   | j jd }| |d d  | |d d  | |d d  d S )Nstartup_componentsplatform_apireadywp_invoicesleave_form_app)r   
extensions
assertTrue)self
componentsr   r   r   !test_required_components_register   s   z/StartupChecks.test_required_components_registerc                 C  s2   | j d}| d|j | d| d  d S )Nz/health   livenesscheck)r   getassertEqualstatus_codeget_jsonr   responser   r   r   test_liveness_is_public$   s   z%StartupChecks.test_liveness_is_publicc                 C  sH   | j d}| }| d|j | d|d  | |d d  d S )Nz/readyr   okstatuscontrol_databaser   )r   r   r"   r    r!   r   )r   r$   payloadr   r   r   'test_readiness_reports_ready_components)   s
   z5StartupChecks.test_readiness_reports_ready_componentsc                 C  s   | j d}| d|j d S )Nz/api/v1/platform/connectioni  )r   r   r    r!   r#   r   r   r   %test_platform_connection_requires_jwt0   s   z3StartupChecks.test_platform_connection_requires_jwtN)	__name__
__module____qualname__classmethodr   r   r%   r*   r+   r   r   r   r   r      s    
	r   __main__)	verbosity)__doc__
__future__r   sysunittestpathlibr   __file__resolveparentsPROJECT_ROOTpathinsertstrmodulesr   loaded_platformhasattrplatform.runtime.app_factoryr   TestCaser   r,   mainr   r   r   r   <module>   s    "