summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Lo <[email protected]>2023-11-06 15:53:34 +0000
committergit <[email protected]>2023-11-06 15:53:38 +0000
commit2dd32e7c3b6904e61b9068596f5e4e82920c1fb0 (patch)
treefe8b8d3d90854a384a62d05b9c7933724b25d00a
parent16403f41abcbaccf32484d10575d3542dbb3247e (diff)
[ruby/reline] Test Reline::Face without mocking
(https://github.com/ruby/reline/pull/600) * Test Reline::Face without mocking Because `test-unit-rr` is not a default gem, using it would break CRuby's CI. * Add ruby-core workflow https://github.com/ruby/reline/commit/d2189ac436
-rw-r--r--.github/workflows/ruby-core.yml59
-rw-r--r--test/reline/helper.rb1
-rw-r--r--test/reline/test_face.rb18
3 files changed, 65 insertions, 13 deletions
diff --git a/.github/workflows/ruby-core.yml b/.github/workflows/ruby-core.yml
new file mode 100644
index 0000000000..bd4cd82f52
--- /dev/null
+++ b/.github/workflows/ruby-core.yml
@@ -0,0 +1,59 @@
+name: ruby-core
+
+on:
+ pull_request:
+
+ push:
+ branches:
+ - master
+
+concurrency:
+ group: ci-${{ github.ref }}-${{ github.workflow }}
+
+permissions: # added using https://github.com/step-security/secure-workflows
+ contents: read
+
+jobs:
+ ruby_core:
+ name: Reline under a ruby-core setup
+ runs-on: ubuntu-20.04
+ strategy:
+ fail-fast: false
+ timeout-minutes: 30
+ steps:
+ - name: Set up latest ruby head
+ uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # v1.152.0
+ with:
+ ruby-version: head
+ bundler: none
+ - name: Save latest buildable revision to environment
+ run: echo "REF=$(ruby -v | cut -d')' -f1 | cut -d' ' -f5)" >> $GITHUB_ENV
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.1.0
+ with:
+ repository: ruby/ruby
+ path: ruby/ruby
+ fetch-depth: 10
+ - name: Checkout the latest buildable revision
+ run: git switch -c ${{ env.REF }}
+ working-directory: ruby/ruby
+ - name: Install libraries
+ run: |
+ set -x
+ sudo apt-get update -q || :
+ sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev bison autoconf ruby
+ - name: Build Ruby
+ run: |
+ autoconf
+ ./configure -C --disable-install-doc
+ make -j2
+ working-directory: ruby/ruby
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.1.0
+ with:
+ path: ruby/reline
+ - name: Sync tools
+ run: |
+ ruby tool/sync_default_gems.rb reline
+ working-directory: ruby/ruby
+ - name: Test Reline
+ run: make -j2 -s test-all TESTS="reline --no-retry"
+ working-directory: ruby/ruby
diff --git a/test/reline/helper.rb b/test/reline/helper.rb
index 4d0c883c86..fb2262e7f5 100644
--- a/test/reline/helper.rb
+++ b/test/reline/helper.rb
@@ -4,7 +4,6 @@ ENV['TERM'] = 'xterm' # for some CI environments
require 'reline'
require 'test/unit'
-require 'test/unit/rr'
begin
require 'rbconfig'
diff --git a/test/reline/test_face.rb b/test/reline/test_face.rb
index 371b4b0d2e..14da4f6d65 100644
--- a/test/reline/test_face.rb
+++ b/test/reline/test_face.rb
@@ -151,17 +151,6 @@ class Reline::Face::Test < Reline::TestCase
@config = Reline::Face.const_get(:Config).new(:my_config) { }
end
- def test_the_order_of_define_values_should_be_preserved
- any_instance_of(Reline::Face.const_get(:Config)) do |config|
- mock(config).format_to_sgr(
- [[:foreground, :blue], [:style, [:bold, :italicized]], [:background, :red]]
- )
- end
- Reline::Face.config(:my_config) do |face|
- face.define :default, foreground: :blue, style: [:bold, :italicized], background: :red
- end
- end
-
def test_rgb?
assert_equal true, @config.send(:rgb_expression?, "#FFFFFF")
end
@@ -171,11 +160,16 @@ class Reline::Face::Test < Reline::TestCase
assert_equal false, @config.send(:rgb_expression?, "#FFFFF")
end
- def test_format_to_sgr
+ def test_format_to_sgr_preserves_order
assert_equal(
"#{RESET_SGR}\e[37;41;1;3m",
@config.send(:format_to_sgr, foreground: :white, background: :red, style: [:bold, :italicized])
)
+
+ assert_equal(
+ "#{RESET_SGR}\e[37;1;3;41m",
+ @config.send(:format_to_sgr, foreground: :white, style: [:bold, :italicized], background: :red)
+ )
end
def test_format_to_sgr_with_reset