< Summary - Backend C Tests - Coverage Report

Information
Class: test_jwt_standalone_c
Assembly: src.backend.tests.unit
File(s): C:\Users\yagiz\Desktop\Project\smart-maintenance-suite\src\backend\tests\unit\test_jwt_standalone.c
Line coverage
100%
Covered lines: 40
Uncovered lines: 0
Coverable lines: 40
Total lines: 62
Line coverage: 100%
Branch coverage
50%
Covered branches: 17
Total branches: 34
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
test_jwt_lifecycle50%00100%
test_jwt_errors50%00100%
main100%00100%

File(s)

C:\Users\yagiz\Desktop\Project\smart-maintenance-suite\src\backend\tests\unit\test_jwt_standalone.c

#LineLine coverage
 1#include "../../security/jwt.h"
 2#include <stdio.h>
 3#include <assert.h>
 4#include <string.h>
 5#include <stdlib.h>
 6#include <time.h>
 7#include <stdbool.h>
 8
 9// Note: This test links against the REAL jwt.c and db_connection.c
 10// We focus on the JSON/Token logic which doesn't require a live DB for the most part.
 11
 112void test_jwt_lifecycle() {
 113  printf("Testing JWT Generate/Validate/Extract lifecycle...\n");
 114  int user_id = 42;
 115  const char *user = "testadmin";
 116  const char *role = "superadmin";
 17  // 1. Generate
 118  char *token = generate_auth_token(user_id, user, role);
 119  assert(token != NULL);
 120  assert(strncmp(token, "simple_jwt:", 11) == 0);
 121  printf("Generated Token: %s\n", token);
 22  // 2. Validate
 123  assert(validate_auth_token(token) == true);
 24  // 3. Extract User ID
 125  int extracted_id = get_user_id_from_token(token);
 126  assert(extracted_id == user_id);
 27  // 4. Extract Role
 128  char *extracted_role = get_role_from_token(token);
 129  assert(extracted_role != NULL);
 130  assert(strcmp(extracted_role, role) == 0);
 131  free(extracted_role);
 32  // 5. Cleanup
 133  free(token);
 134  printf("[PASS] test_jwt_lifecycle\n");
 135}
 36
 137void test_jwt_errors() {
 138  printf("Testing JWT error cases...\n");
 39  // Null inputs
 140  assert(generate_auth_token(1, NULL, "admin") == NULL);
 141  assert(generate_auth_token(1, "admin", NULL) == NULL);
 42  // Invalid validation
 143  assert(validate_auth_token(NULL) == false);
 144  assert(validate_auth_token("") == false);
 145  assert(validate_auth_token("not_a_jwt") == false);
 146  assert(validate_auth_token("simple_jwt:invalid_json") == false);
 147  assert(validate_auth_token("simple_jwt:{\"no_exp\":1}") == false);
 48  // Invalid extraction
 149  assert(get_user_id_from_token(NULL) == -1);
 150  assert(get_user_id_from_token("invalid") == -1);
 151  assert(get_role_from_token(NULL) == NULL);
 152  assert(get_role_from_token("invalid") == NULL);
 153  printf("[PASS] test_jwt_errors\n");
 154}
 55
 156int main() {
 157  printf("=== Real JWT Unit Tests ===\n");
 158  test_jwt_lifecycle();
 159  test_jwt_errors();
 160  printf("\n✅ All JWT tests passed!\n");
 161  return 0;
 62}