tests: add first test for auth

This commit is contained in:
talksik
2026-01-27 12:43:44 -08:00
parent 707e4455ac
commit 314c9037f2
4 changed files with 88 additions and 0 deletions
+5
View File
@@ -10,10 +10,13 @@ find_package(Qt6 REQUIRED COMPONENTS
Gui
Widgets
Network
Test
)
qt_standard_project_setup(REQUIRES 6.8)
enable_testing()
qt_add_executable(llink
main.cpp
src/MainWindow.cpp
@@ -56,6 +59,8 @@ target_link_libraries(llink
Qt6::Network
)
add_subdirectory(tests)
include(GNUInstallDirs)
install(TARGETS llink
BUNDLE DESTINATION .
+32
View File
@@ -0,0 +1,32 @@
# Test executable for AuthManager
qt_add_executable(testauthmanager
# Test files
testauthmanager.cpp
testauthmanager.h
# Source files needed for testing
../src/authmanager.cpp
../src/authmanager.h
../src/networkmanager.cpp
../src/networkmanager.h
)
# Link Qt modules
target_link_libraries(testauthmanager
PRIVATE
Qt6::Core
Qt6::Network
Qt6::Test
)
# Include src directory for headers
target_include_directories(testauthmanager PRIVATE ../src)
# Enable automoc for Q_OBJECT processing
set_target_properties(testauthmanager PROPERTIES
AUTOMOC ON
)
# Register with CTest
add_test(NAME testauthmanager COMMAND testauthmanager)
+25
View File
@@ -0,0 +1,25 @@
#include "testauthmanager.h"
#include <QSignalSpy>
TestAuthManager::TestAuthManager(QObject *parent) : QObject{parent}, m_authManager(new AuthManager(this))
{
}
void TestAuthManager::add()
{
}
void TestAuthManager::testSignIn()
{
QSignalSpy codeSent(m_authManager, &AuthManager::codeSentToEmail);
m_authManager->requestSignInCode("arjun@flowylabs.ai");
QVERIFY(codeSent.wait(5000));
QCOMPARE(codeSent.count(), 1);
QSignalSpy signedIn(m_authManager, &AuthManager::isSignedInChanged);
m_authManager->signIn("0000");
QVERIFY(signedIn.wait(5000));
QCOMPARE(signedIn.count(), 1);
}
QTEST_MAIN(TestAuthManager)
+26
View File
@@ -0,0 +1,26 @@
#ifndef TESTAUTHMANAGER_H
#define TESTAUTHMANAGER_H
#include "authmanager.h"
#include <QObject>
#include <QTest>
class TestAuthManager : public QObject
{
Q_OBJECT
public:
explicit TestAuthManager(QObject *parent = nullptr);
private slots:
void add();
void testSignIn();
signals:
private:
AuthManager *m_authManager;
};
#endif // TESTAUTHMANAGER_H