stormbreaker 0.0.1 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7bd034d510483332e5bdb2dcd2e370e83832fe2efd0a898f94ea304e867fae7
4
- data.tar.gz: c20fc367cab6c4ebc5668821d703fbe7008e58a407104efb260292c5f346c65d
3
+ metadata.gz: 464eab86bf4e953ef2b5db23fcd2f6ac74b8b91efd34d29b6a52e850d8083ba5
4
+ data.tar.gz: 707b8e18937bbd3a69c0d4525302a85ea26623f82b2f0eb5dc16b46d61c78d02
5
5
  SHA512:
6
- metadata.gz: 8052bb39b91ea6b40306d0dd8fc8fe95a170bd3c9f76f7820336e4f12c1dbfcd7538e9b59853c562db7b91f31b4d6fbc6a66558608ddb20ee9ec5c3fb90275b9
7
- data.tar.gz: 583c03ad767c4540116b5f1a3f398655cba597157a421f4355fe069c28e69f98b745b3d3b925ba3fb78581a88b385ca046cba136ab68d9c43841be1fc9b166f3
6
+ metadata.gz: 81e3be1cea0dfc0788320acd519f73fca09384e18e645d1f07ca4cac183433cd4d784c9fce965c5dc54278f55f99462051305090fbe2801ca420e6c9774cd806
7
+ data.tar.gz: 811d0987f71e9c46d20964c03c26210f83c673e3a9a06e2f4bf4d1b3cee5ecd0247706d080542edd15b1d0ec5459f30a68bfb67207ce796520dc327b9d0cdd58
@@ -13,10 +13,9 @@ module Stormbreaker
13
13
 
14
14
  # Always assert that driver's current page _is_ axe compliant
15
15
  RSpec::Expectations::PositiveExpectationHandler.handle_matcher(@driver, axe_matcher)
16
-
17
16
  call_stack = caller.select { |line| line =~ /selenium.*_spec\.rb/ }.first(5)
18
17
  # only get /path/to/spec:line_number from call stack
19
- call_stack.map! { |c| c.scan(%r{^[A-Za-z/_-]*\.rb:\d*}) }
18
+ call_stack.map! { |c| c.scan(%r{^[A-Za-z0-9/_-]*\.rb:\d*}) }
20
19
 
21
20
  violations = axe_matcher.audit([]).results.violations
22
21
  violations.each do |v|
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'safe_yaml'
3
+ require 'yaml'
4
4
 
5
5
  module Stormbreaker
6
6
  class AxeResultsSerializer
7
- ALLOWED_TAGS = ['!ruby/object:Stormbreaker::AxeViolation', '!ruby/object:Set'].freeze
7
+ ALLOWED_CLASSES = [Stormbreaker::AxeViolation, Set, Symbol].freeze
8
8
 
9
9
  def self.serialize_results(total_violations)
10
10
  dump = YAML.dump(total_violations)
@@ -16,19 +16,15 @@ module Stormbreaker
16
16
  puts "Serialized results written to #{filename}"
17
17
  end
18
18
 
19
- def self.combine_results(path = Dir.pwd)
20
- prefix = Stormbreaker.configuration.serialize_prefix
21
- results_files = Dir.glob("#{prefix}*", base: path)
22
- raise "No results matching /#{prefix}*/ found in #{path}" if results_files.empty?
19
+ def self.combine_results(path = Dir.pwd, prefix = nil)
20
+ prefix ||= Stormbreaker.configuration.serialize_prefix
21
+ results_files = Dir.glob(File.join(path, "#{prefix}*"))
22
+ raise "No results matching /#{prefix}* found in #{path}" if results_files.empty?
23
23
 
24
24
  combined_manager = Stormbreaker::AxeViolationManager.new
25
25
  results_files.each do |file|
26
- # rubocop:disable Security/YAMLLoad
27
- # Using YAML.load here so that we can specify safe and whitelisted_tags as args in order to not
28
- # have to patch settings to use safe_load and potentially endanger consuming apps.
29
- total_violations = YAML.load(File.read(File.join(path, file)),
30
- safe: true, whitelisted_tags: ALLOWED_TAGS, deserialize_symbols: true)
31
- # rubocop:enable Security/YAMLLoad
26
+ puts "Loading #{file}"
27
+ total_violations = YAML.safe_load(File.read(file), permitted_classes: ALLOWED_CLASSES, aliases: true)
32
28
  total_violations.each do |violation|
33
29
  combined_manager.add_failure_to_total(violation)
34
30
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  namespace :stormbreaker do
4
4
  desc 'Combines results that were created from isolated test runs'
5
- task :combine_results, %i[path] do |_t, args|
5
+ task :combine_results, %i[path prefix] do |_t, args|
6
6
  require_relative '../../stormbreaker'
7
- manager = Stormbreaker::AxeResultsSerializer.combine_results(args[:path])
7
+ manager = Stormbreaker::AxeResultsSerializer.combine_results(args[:path], args[:prefix])
8
8
  erb_writer = Stormbreaker::ErbFormatter.new(manager.total_violations)
9
9
  erb_writer.write_to_erb
10
10
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stormbreaker
4
- VERSION = '0.0.1'
4
+ VERSION = '0.0.5'
5
5
  end
data/stormbreaker.gemspec CHANGED
@@ -25,11 +25,10 @@ Gem::Specification.new do |gem|
25
25
  gem.metadata['allowed_push_host'] = 'https://rubygems.org'
26
26
  gem.required_ruby_version = '>= 2.6'
27
27
 
28
- gem.add_dependency 'axe-core-api', '~> 4.1'
29
- gem.add_dependency 'axe-core-rspec', '~> 4.1'
30
- gem.add_dependency 'axe-core-selenium', '~> 4.1'
28
+ gem.add_dependency 'axe-core-api', '~> 4.1.0'
29
+ gem.add_dependency 'axe-core-rspec', '~> 4.1.0'
30
+ gem.add_dependency 'axe-core-selenium', '~> 4.1.0'
31
31
  gem.add_dependency 'rspec', '~> 3.8'
32
- gem.add_dependency 'safe_yaml', '~> 1.0.5'
33
32
  gem.add_development_dependency 'bundler', '~> 1.17'
34
33
  gem.add_development_dependency 'nokogiri', '~> 1.11.7'
35
34
  gem.add_development_dependency 'pry', '~> 0.14.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stormbreaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Watson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-22 00:00:00.000000000 Z
11
+ date: 2021-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: axe-core-api
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.1'
19
+ version: 4.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.1'
26
+ version: 4.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: axe-core-rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.1'
33
+ version: 4.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '4.1'
40
+ version: 4.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: axe-core-selenium
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '4.1'
47
+ version: 4.1.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '4.1'
54
+ version: 4.1.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.8'
69
- - !ruby/object:Gem::Dependency
70
- name: safe_yaml
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 1.0.5
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 1.0.5
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: bundler
85
71
  requirement: !ruby/object:Gem::Requirement