Cockatrice/tests/model_contract/CMakeLists.txt
BruebachL ce543896f5
[Tests] Use QtTest for model contracts and signal spies (#7630)
Qt6::Test was linked into every test but never used. Add a small RAII
QAbstractItemModelTester helper and apply it to the deck list model, the card
database model and display proxy, and the sets model. Add QSignalSpy coverage
for the card-added and download-settings signals, and assert explicitly that a
card row is a leaf with no child columns (the tester does not check that).

The contract checker immediately found four model bugs, fixed here:
- DeckListModel allowed children below non-zero columns.
- CardDatabaseModel reported every card as a child of every card row.
- CardDatabaseModel reported six columns for a valid (leaf) card index.
- CardDatabaseDisplayModel claimed more rows were fetchable while rowCount
  already exposed them all, so fetchMore() inserted duplicates.

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-02 07:27:43 +01:00

17 lines
394 B
CMake

cockatrice_add_test(
NAME
model_contract_test
SOURCES
${VERSION_STRING_CPP}
model_contract_test.cpp
LIBS
libcockatrice_models
libcockatrice_card
libcockatrice_deck_list
libcockatrice_settings
INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../support
${CMAKE_CURRENT_SOURCE_DIR}/../carddatabase
DEFINITIONS
CARDDB_DATADIR="${CMAKE_SOURCE_DIR}/tests/carddatabase/data/"
)