geocrop-platform./apps/nextgen/evidence/smoke-crossword-finalize.txt

62 lines
6.8 KiB
Plaintext

[2026-06-25T20:42:30.285Z] === Crossword smoke test (finalize) ===
[2026-06-25T20:42:30.289Z] Base URL: http://localhost:3001
[2026-06-25T20:42:30.289Z]
[2026-06-25T20:42:30.289Z] --- 1. Teacher login ---
[2026-06-25T20:42:30.540Z] status=200
[2026-06-25T20:42:30.540Z] teacher user: id=3 email=teacher@school.com role=teacher
[2026-06-25T20:42:30.540Z] teacher token (truncated): eyJhbGciOiJIUzI1NiIs...
[2026-06-25T20:42:30.540Z]
[2026-06-25T20:42:30.540Z] --- 2. POST /api/crossword/games (5 clues) ---
[2026-06-25T20:42:30.555Z] status=201
[2026-06-25T20:42:30.555Z] response (truncated to 1500 chars):
[2026-06-25T20:42:30.555Z] {"id":7,"uid":"4b2d6007-ab7e-40c2-a1c2-b53313be384e","title":"Smoke Test Crossword","description":"Auto-created by smoke-crossword-finalize.mjs","subject_id":null,"class_id":null,"created_by":3,"status":"ready","grid_layout":"{\"rows\":10,\"cols\":6,\"cells\":[{\"row\":0,\"col\":0,\"letter\":\"M\",\"clue_number\":1,\"is_block\":false},{\"row\":0,\"col\":5,\"letter\":\"S\",\"clue_number\":2,\"is_block\":false},{\"row\":1,\"col\":0,\"letter\":\"O\",\"clue_number\":null,\"is_block\":false},{\"row\":1,\"col\":5,\"letter\":\"U\",\"clue_number\":null,\"is_block\":false},{\"row\":2,\"col\":0,\"letter\":\"O\",\"clue_number\":null,\"is_block\":false},{\"row\":2,\"col\":5,\"letter\":\"N\",\"clue_number\":null,\"is_block\":false},{\"row\":3,\"col\":0,\"letter\":\"N\",\"clue_number\":null,\"is_block\":false},{\"row\":5,\"col\":0,\"letter\":\"S\",\"clue_number\":3,\"is_block\":false},{\"row\":5,\"col\":1,\"letter\":\"T\",\"clue_number\":null,\"is_block\":false},{\"row\":5,\"col\":2,\"letter\":\"A\",\"clue_number\":null,\"is_block\":false},{\"row\":5,\"col\":3,\"letter\":\"R\",\"clue_number\":null,\"is_block\":false},{\"row\":7,\"col\":0,\"letter\":\"C\",\"clue_number\":4,\"is_block\":false},{\"row\":7,\"col\":1,\"letter\":\"A\",\"clue_number\":null,\"is_block\":false},{\"row\":7,\"col\":2,\"letter\":\"T\",\"clue_number\":null,\"is_block\":false},{\"row\":9,\"col\":0,\"letter\":\"D\",\"clue_number\":5,\"is_block\":false},{\"row\":9,\"col\":1,\"letter\":\"O\",\"clue_number\":null,\"is_block
[2026-06-25T20:42:30.555Z]
[2026-06-25T20:42:30.555Z] game.id = 7
[2026-06-25T20:42:30.555Z] game.title = Smoke Test Crossword
[2026-06-25T20:42:30.555Z] game.word_count = 5
[2026-06-25T20:42:30.555Z] game.difficulty = medium
[2026-06-25T20:42:30.555Z] game.status = ready
[2026-06-25T20:42:30.555Z] game.grid_layout present? YES (1790 chars)
[2026-06-25T20:42:30.555Z] parsed grid: rows=10 cols=6 cells=17 placements=5
[2026-06-25T20:42:30.555Z]
[2026-06-25T20:42:30.555Z] --- 3. POST /api/crossword/games/:id/publish ---
[2026-06-25T20:42:30.558Z] status=200
[2026-06-25T20:42:30.558Z] response (truncated to 500 chars):
[2026-06-25T20:42:30.558Z] {"id":7,"uid":"4b2d6007-ab7e-40c2-a1c2-b53313be384e","title":"Smoke Test Crossword","description":"Auto-created by smoke-crossword-finalize.mjs","subject_id":null,"class_id":null,"created_by":3,"status":"ready","grid_layout":"{\"rows\":10,\"cols\":6,\"cells\":[{\"row\":0,\"col\":0,\"letter\":\"M\",\"clue_number\":1,\"is_block\":false},{\"row\":0,\"col\":5,\"letter\":\"S\",\"clue_number\":2,\"is_block\":false},{\"row\":1,\"col\":0,\"letter\":\"O\",\"clue_number\":null,\"is_block\":false},{\"row\"
[2026-06-25T20:42:30.558Z] is_published = 1 (expected 1)
[2026-06-25T20:42:30.558Z]
[2026-06-25T20:42:30.558Z] --- 4. Student login ---
[2026-06-25T20:42:30.660Z] status=200
[2026-06-25T20:42:30.661Z] student user: id=6 email=student@school.com role=student
[2026-06-25T20:42:30.661Z]
[2026-06-25T20:42:30.661Z] --- 5. POST /api/crossword/sessions (start) ---
[2026-06-25T20:42:30.675Z] status=201
[2026-06-25T20:42:30.675Z] response (truncated to 500 chars):
[2026-06-25T20:42:30.675Z] {"id":5,"uid":"d6a8619f-d3d1-4f81-93c2-f17f6ffbf0d3","game_id":7,"student_id":6,"current_state":"{}","correct_count":0,"total_count":5,"time_taken_seconds":null,"completed_at":null,"points_earned":0,"created_at":"2026-06-25 20:42:30","updated_at":"2026-06-25 20:42:30","last_synced_at":null,"sync_status":"pending","is_deleted":0}
[2026-06-25T20:42:30.675Z] session.id = 5 game_id = 7 student_id = 6 total_count = 5
[2026-06-25T20:42:30.675Z]
[2026-06-25T20:42:30.675Z] --- 6. PUT /api/crossword/sessions/:id (save full state) ---
[2026-06-25T20:42:30.675Z] userState size: 17 cells
[2026-06-25T20:42:30.684Z] status=200
[2026-06-25T20:42:30.684Z] response (truncated to 500 chars):
[2026-06-25T20:42:30.684Z] {"id":5,"uid":"d6a8619f-d3d1-4f81-93c2-f17f6ffbf0d3","game_id":7,"student_id":6,"current_state":"{\"0,0\":\"M\",\"1,0\":\"O\",\"2,0\":\"O\",\"3,0\":\"N\",\"5,0\":\"S\",\"5,1\":\"T\",\"5,2\":\"A\",\"5,3\":\"R\",\"7,0\":\"C\",\"7,1\":\"A\",\"7,2\":\"T\",\"9,0\":\"D\",\"9,1\":\"O\",\"9,2\":\"G\",\"0,5\":\"S\",\"1,5\":\"U\",\"2,5\":\"N\"}","correct_count":0,"total_count":5,"time_taken_seconds":null,"completed_at":null,"points_earned":0,"created_at":"2026-06-25 20:42:30","updated_at":"2026-06-25 20:4
[2026-06-25T20:42:30.684Z]
[2026-06-25T20:42:30.684Z] --- 7. POST /api/crossword/sessions/:id/submit ---
[2026-06-25T20:42:30.692Z] status=200
[2026-06-25T20:42:30.692Z] response (truncated to 800 chars):
[2026-06-25T20:42:30.692Z] {"id":5,"uid":"d6a8619f-d3d1-4f81-93c2-f17f6ffbf0d3","game_id":7,"student_id":6,"current_state":"{\"0,0\":\"M\",\"1,0\":\"O\",\"2,0\":\"O\",\"3,0\":\"N\",\"5,0\":\"S\",\"5,1\":\"T\",\"5,2\":\"A\",\"5,3\":\"R\",\"7,0\":\"C\",\"7,1\":\"A\",\"7,2\":\"T\",\"9,0\":\"D\",\"9,1\":\"O\",\"9,2\":\"G\",\"0,5\":\"S\",\"1,5\":\"U\",\"2,5\":\"N\"}","correct_count":5,"total_count":5,"time_taken_seconds":0,"completed_at":"2026-06-25 20:42:30","points_earned":50,"created_at":"2026-06-25 20:42:30","updated_at":"2026-06-25 20:42:30","last_synced_at":null,"sync_status":"pending","is_deleted":0,"is_complete":true,"per_clue":[{"clue_id":3,"clue_number":1,"direction":"down","user_answer":"MOON","isCorrect":true},{"clue_id":4,"clue_number":3,"direction":"across","user_answer":"STAR","isCorrect":true},{"clue_id":
[2026-06-25T20:42:30.692Z]
[2026-06-25T20:42:30.692Z] is_complete = true
[2026-06-25T20:42:30.692Z] correct_count = 5 / total_count = 5
[2026-06-25T20:42:30.692Z] points_earned = 50
[2026-06-25T20:42:30.693Z] completed_at = 2026-06-25 20:42:30
[2026-06-25T20:42:30.693Z] time_taken_seconds = 0
[2026-06-25T20:42:30.693Z]
[2026-06-25T20:42:30.693Z] --- 8. GET /api/crossword/leaderboard (sanity) ---
[2026-06-25T20:42:30.700Z] status=200
[2026-06-25T20:42:30.700Z] response (truncated to 500 chars):
[2026-06-25T20:42:30.700Z] [{"student_id":6,"first_name":"Nyasha","last_name":"Moyo","total_points":202,"sessions_completed":5,"perfect_completions":4}]
[2026-06-25T20:42:30.700Z]
[2026-06-25T20:42:30.700Z] === SMOKE TEST PASSED ===
[2026-06-25T20:42:30.700Z] summary: {"game_id":7,"session_id":5,"is_complete":true,"correct_count":5,"total_count":5,"points_earned":50,"completed_at":"2026-06-25 20:42:30"}