stormbreaker 0.0.1 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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