Class: CapyDash::TestDataAggregator

Inherits:
Object
  • Object
show all
Defined in:
lib/capydash/test_data_aggregator.rb

Class Method Summary collapse

Class Method Details

.finish_test_runObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/capydash/test_data_aggregator.rb', line 34

def finish_test_run
  run_id = get_current_run_id
  return unless run_id

  # Load current run data
  run_data = load_run_data(run_id)
  return unless run_data

  # Save the final test run data
  CapyDash.save_test_run(run_data)

  # Clear current state
  clear_current_test_context
end

.handle_event(event) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/capydash/test_data_aggregator.rb', line 49

def handle_event(event)
  run_id = get_current_run_id
  return unless run_id

  # Load current run data
  run_data = load_run_data(run_id)
  return unless run_data

  case event[:step_name]
  when 'test_start'
    start_new_test(event, run_data)
  when 'test_finish'
    finish_current_test(event, run_data)
  when 'test_result'
    # This indicates the test is finished
    finish_current_test(event, run_data)
  else
    # This is a test step (visit, click_button, fill_in, etc.)
    # If we don't have a current test, start one
    current_test = get_current_test
    start_new_test(event, run_data) unless current_test
    add_test_step(event, run_data)
  end
end

.start_test_runObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/capydash/test_data_aggregator.rb', line 9

def start_test_run
  # Don't start a new run if one is already in progress
  return if test_run_started?

  run_id = generate_run_id
  run_data = {
    id: run_id,
    created_at: Time.now.iso8601,
    total_tests: 0,
    passed_tests: 0,
    failed_tests: 0,
    tests: []
  }

  # Save initial run data to file
  save_run_data(run_data)

  # Set current test context
  set_current_test_context(run_id, nil, [])
end

.test_run_started?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/capydash/test_data_aggregator.rb', line 30

def test_run_started?
  get_current_run_id != nil
end