Skip to content

Commit 10e2670

Browse files
committed
Drop Ruby 2.6 and JRuby 9.3; add JRuby 9.4, 10.0, and TruffleRuby
1 parent b36c1c0 commit 10e2670

3 files changed

Lines changed: 68 additions & 4 deletions

File tree

.github/workflows/main.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ jobs:
1010

1111
matrix:
1212
ruby-version:
13-
- '2.6'
1413
- '2.7'
1514
- '3.0'
1615
- '3.1'
@@ -19,8 +18,10 @@ jobs:
1918
- '3.4'
2019
- '4.0'
2120
- ruby-head
22-
- jruby-9.3
21+
- jruby-9.4
22+
- jruby-10.0
2323
- jruby-head
24+
- truffleruby
2425

2526
steps:
2627
- uses: actions/checkout@v6
@@ -31,8 +32,8 @@ jobs:
3132
with:
3233
ruby-version: ${{ matrix.ruby-version }}
3334
bundler-cache: true
34-
continue-on-error: ${{ (matrix.ruby-version == 'ruby-head') || (matrix.ruby-version == 'jruby-head') }}
35+
continue-on-error: ${{ (matrix.ruby-version == 'ruby-head') || (matrix.ruby-version == 'jruby-head') || (matrix.ruby-version == 'truffleruby') }}
3536

3637
- run: |
3738
bundle exec rake
38-
continue-on-error: ${{ (matrix.ruby-version == 'ruby-head') || (matrix.ruby-version == 'jruby-head') }}
39+
continue-on-error: ${{ (matrix.ruby-version == 'ruby-head') || (matrix.ruby-version == 'jruby-head') || (matrix.ruby-version == 'truffleruby') }}

.mutant.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
usage: opensource
2+
integration:
3+
name: minitest
4+
includes:
5+
- lib
6+
- test
7+
requires:
8+
- simplecov
9+
- simplecov-html
10+
matcher:
11+
subjects:
12+
- SimpleCov::Formatter::HTMLFormatter#coverage_css_class
13+
- SimpleCov::Formatter::HTMLFormatter#strength_css_class

test/test_mutation.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# frozen_string_literal: true
2+
3+
require "helper"
4+
5+
# Focused tests for mutation testing — exercises private methods directly.
6+
# Uses cover() to explicitly tell mutant which methods each test covers.
7+
class TestMutation < Minitest::Test
8+
cover "SimpleCov::Formatter::HTMLFormatter#coverage_css_class" if respond_to?(:cover)
9+
10+
def test_coverage_css_class_green
11+
assert_equal "green", formatter.send(:coverage_css_class, 100)
12+
assert_equal "green", formatter.send(:coverage_css_class, 91)
13+
assert_equal "green", formatter.send(:coverage_css_class, 90.01)
14+
end
15+
16+
def test_coverage_css_class_yellow
17+
assert_equal "yellow", formatter.send(:coverage_css_class, 90)
18+
assert_equal "yellow", formatter.send(:coverage_css_class, 81)
19+
assert_equal "yellow", formatter.send(:coverage_css_class, 80.01)
20+
end
21+
22+
def test_coverage_css_class_red
23+
assert_equal "red", formatter.send(:coverage_css_class, 80)
24+
assert_equal "red", formatter.send(:coverage_css_class, 50)
25+
assert_equal "red", formatter.send(:coverage_css_class, 0)
26+
end
27+
28+
cover "SimpleCov::Formatter::HTMLFormatter#strength_css_class" if respond_to?(:cover)
29+
30+
def test_strength_css_class_green
31+
assert_equal "green", formatter.send(:strength_css_class, 2)
32+
assert_equal "green", formatter.send(:strength_css_class, 1.01)
33+
end
34+
35+
def test_strength_css_class_yellow
36+
assert_equal "yellow", formatter.send(:strength_css_class, 1)
37+
assert_equal "yellow", formatter.send(:strength_css_class, 1.0)
38+
end
39+
40+
def test_strength_css_class_red
41+
assert_equal "red", formatter.send(:strength_css_class, 0.99)
42+
assert_equal "red", formatter.send(:strength_css_class, 0)
43+
end
44+
45+
private
46+
47+
def formatter
48+
@formatter ||= SimpleCov::Formatter::HTMLFormatter.new
49+
end
50+
end

0 commit comments

Comments
 (0)