Sha256: f82d3f78df08afa7ef6400fc6317bf75a7d392c6cc8c51c46f0f1d61b1c8e4b8
Contents?: true
Size: 834 Bytes
Versions: 3
Compression:
Stored size: 834 Bytes
Contents
# frozen_string_literal: true require 'stringio' require 'kramdown' describe "README.md code snippet" do let(:code_blocks) do markdown = File.read(File.expand_path(File.dirname(__FILE__) + '/../README.md')) parse_ruby_from(markdown) end it "executes with the expected output" do code, output = *code_blocks expect(execute_ruby(code)).to eq output end def execute_ruby(code) capture_stdout do eval code, binding end end def parse_ruby_from(markdown) code_blocks = Kramdown::Parser::GFM.parse(markdown).first.children.select { |e| e.type == :codeblock }.map(&:value) expect(code_blocks).not_to be_empty code_blocks end def capture_stdout original = $stdout $stdout = StringIO.new yield result = $stdout.string $stdout = original result end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cucumber-core-3.0.0 | spec/readme_spec.rb |
cucumber-core-3.0.0.pre.2 | spec/readme_spec.rb |
cucumber-core-2.0.0 | spec/readme_spec.rb |