Class: Henitai::Reporter::Json
- Inherits:
-
Base
- Object
- Base
- Henitai::Reporter::Json
show all
- Defined in:
- lib/henitai/reporter.rb,
sig/henitai.rbs
Overview
Instance Attribute Summary
Attributes inherited from Base
#config, #history_store
Instance Method Summary
collapse
Methods inherited from Base
#authoritative?, #canonical_path, #initialize
Instance Method Details
#history_report_path ⇒ String
406
407
408
|
# File 'lib/henitai/reporter.rb', line 406
def history_report_path
File.join(config.reports_dir, "mutation-history.json")
end
|
#report(result) ⇒ void
This method returns an undefined value.
342
343
344
345
346
347
348
|
# File 'lib/henitai/reporter.rb', line 342
def report(result)
schema = result.to_stryker_schema
write_canonical(schema, authoritative: authoritative?(result))
write_session_snapshot(schema)
write_activation_recipes(result)
write_history_report
end
|
#session_recipe_path(session_id) ⇒ String
388
389
390
|
# File 'lib/henitai/reporter.rb', line 388
def session_recipe_path(session_id)
File.join(config.reports_dir, "sessions", session_id, SurvivorActivationCache::FILENAME)
end
|
#session_snapshot_path(session_id) ⇒ String
384
385
386
|
# File 'lib/henitai/reporter.rb', line 384
def session_snapshot_path(session_id)
File.join(config.reports_dir, "sessions", session_id, "mutation-report.json")
end
|
#survived_mutants_for(result) ⇒ Array[Mutant]
378
379
380
381
382
|
# File 'lib/henitai/reporter.rb', line 378
def survived_mutants_for(result)
return [] unless result.respond_to?(:mutants)
result.mutants.select(&:survived?)
end
|
#write_activation_recipes(result) ⇒ void
This method returns an undefined value.
365
366
367
368
369
370
371
372
373
374
375
376
|
# File 'lib/henitai/reporter.rb', line 365
def write_activation_recipes(result)
session_id = result.session_id if result.respond_to?(:session_id)
return unless session_id
survived = survived_mutants_for(result)
return if survived.empty?
recipes = SurvivorActivationCache.compute(survived)
return if recipes.empty?
SurvivorActivationCache.write(session_recipe_path(session_id), recipes)
end
|
#write_canonical(schema, authoritative:) ⇒ void
This method returns an undefined value.
352
353
354
|
# File 'lib/henitai/reporter.rb', line 352
def write_canonical(schema, authoritative:)
CanonicalReportWriter.write(schema, path: canonical_path, authoritative:)
end
|
#write_history_report ⇒ void
This method returns an undefined value.
392
393
394
395
396
397
398
|
# File 'lib/henitai/reporter.rb', line 392
def write_history_report
store = history_store || default_history_store
return unless File.exist?(store.path)
FileUtils.mkdir_p(File.dirname(history_report_path))
File.write(history_report_path, JSON.pretty_generate(store.trend_report))
end
|
#write_session_snapshot(schema) ⇒ void
This method returns an undefined value.
356
357
358
359
360
361
362
363
|
# File 'lib/henitai/reporter.rb', line 356
def write_session_snapshot(schema)
session_id = schema[:sessionId]
return unless session_id
path = session_snapshot_path(session_id)
FileUtils.mkdir_p(File.dirname(path))
File.write(path, JSON.pretty_generate(schema))
end
|