Class: CapyDash::TestDataAggregator
- Inherits:
-
Object
- Object
- CapyDash::TestDataAggregator
- Defined in:
- lib/capydash/test_data_aggregator.rb
Class Method Summary collapse
- .finish_test_run ⇒ Object
- .handle_event(event) ⇒ Object
- .start_test_run ⇒ Object
- .test_run_started? ⇒ Boolean
Class Method Details
.finish_test_run ⇒ Object
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_run ⇒ Object
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
30 31 32 |
# File 'lib/capydash/test_data_aggregator.rb', line 30 def test_run_started? get_current_run_id != nil end |