minitest-markdown 0.2.3 → 1.0.1
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 +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +8 -0
- data/lib/minitest/markdown/test_class.rb +1 -8
- data/lib/minitest/markdown/version.rb +1 -1
- data/lib/minitest/markdown.rb +7 -2
- data/lib/minitest/stub_chain.rb +2 -0
- metadata +31 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4ce194c19e7860fad853a2c1763a1f0b68cecc43ae7a9ad1c80a2f59e3d435e6
|
|
4
|
+
data.tar.gz: a6bf5cabf787284659443e0048332a4a0b58c3bba5d4bfe0b84a3d88c767bf66
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8c5086120dccfc99db477292686152698821d4ad9230ecec50e6a75134b110a161ca3cd3f554ab568b7fe43034ba8f141a182d5f39c8eb0293a621c596f5291a
|
|
7
|
+
data.tar.gz: 8042550f426f11393f50e470af79120dae04f4c9dd25b1d1a3281d30867c23f09d11fe238b7d36cfcca4afa849a2636c07eade899c6b63dc39cf85f43baedbe3
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [1.0.1] - 2026-05-31
|
|
4
|
+
|
|
5
|
+
- Include Minitest::Hooks in test class. Fixes [#3](https://gitlab.com/matzfan/minitest-markdown/-/work_items/3)
|
|
6
|
+
|
|
7
|
+
## [1.0.0] - 2026-05-22
|
|
8
|
+
|
|
9
|
+
- Minitest 6
|
|
10
|
+
|
|
3
11
|
## [0.2.3] - 2025-05-22
|
|
4
12
|
|
|
5
13
|
- New release to catch up with 'pre' versioning
|
|
@@ -11,7 +11,6 @@ module Minitest
|
|
|
11
11
|
class TestClass
|
|
12
12
|
FENCED_BLOCK_REGEXP = /^```ruby\n(.*?)\n```/m
|
|
13
13
|
|
|
14
|
-
BAD_KLASS = 'TestClass must be instantiated with Minitest::Test or subclass thereof'
|
|
15
14
|
BAD_PATH = 'Path does not exist, is not readable or is not a Markdown file:'
|
|
16
15
|
MD = '.md'
|
|
17
16
|
|
|
@@ -21,7 +20,7 @@ module Minitest
|
|
|
21
20
|
attr_reader :klass, :path
|
|
22
21
|
|
|
23
22
|
def initialize(klass, path: nil)
|
|
24
|
-
@klass =
|
|
23
|
+
@klass = klass
|
|
25
24
|
@path = validate_path path
|
|
26
25
|
@state_methods_defined = []
|
|
27
26
|
end
|
|
@@ -38,12 +37,6 @@ module Minitest
|
|
|
38
37
|
|
|
39
38
|
private
|
|
40
39
|
|
|
41
|
-
def validate_class(klass)
|
|
42
|
-
raise ArgumentError, BAD_KLASS unless klass.respond_to?(:ancestors) && klass.ancestors.include?(Minitest::Test)
|
|
43
|
-
|
|
44
|
-
klass
|
|
45
|
-
end
|
|
46
|
-
|
|
47
40
|
def validate_path(pth)
|
|
48
41
|
return Markdown.config.readme_path if pth.nil?
|
|
49
42
|
raise ArgumentError, "#{BAD_PATH} #{pth}" unless File.exist?(pth) && File.file?(pth) && File.extname(pth) == MD
|
data/lib/minitest/markdown.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'minitest/hooks'
|
|
3
4
|
require 'minitest/stub_any_instance'
|
|
4
5
|
|
|
5
6
|
require_relative 'stub_chain'
|
|
@@ -11,6 +12,7 @@ require_relative 'markdown/test_class'
|
|
|
11
12
|
module Minitest
|
|
12
13
|
# namespace
|
|
13
14
|
module Markdown
|
|
15
|
+
BAD_KLASS = 'klass keyword takes a subclass of Minitest::Test'
|
|
14
16
|
ARG_ERR = 'stubs keyword takes a hash. Keys are integers and values are StubChain instances'
|
|
15
17
|
|
|
16
18
|
class << self
|
|
@@ -23,9 +25,12 @@ module Minitest
|
|
|
23
25
|
end
|
|
24
26
|
|
|
25
27
|
def generate_markdown_tests(klass, path: nil, stubs: {})
|
|
28
|
+
raise ArgumentError, BAD_KLASS unless klass.respond_to?(:ancestors) && klass.ancestors.include?(Test)
|
|
26
29
|
raise ArgumentError, ARG_ERR unless stubs.is_a? Hash
|
|
27
|
-
raise ArgumentError, ARG_ERR unless stubs.keys.all?
|
|
28
|
-
raise ArgumentError, ARG_ERR unless stubs.values.all?
|
|
30
|
+
raise ArgumentError, ARG_ERR unless stubs.keys.all?(Integer)
|
|
31
|
+
raise ArgumentError, ARG_ERR unless stubs.values.all?(StubChain)
|
|
32
|
+
|
|
33
|
+
klass.include Hooks
|
|
29
34
|
|
|
30
35
|
TestClass.new(klass, path: path).define_methods(stubs: stubs)
|
|
31
36
|
end
|
data/lib/minitest/stub_chain.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: minitest-markdown
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- MatzFan
|
|
@@ -35,20 +35,42 @@ dependencies:
|
|
|
35
35
|
requirements:
|
|
36
36
|
- - "~>"
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
|
-
version: '
|
|
39
|
-
|
|
38
|
+
version: '6'
|
|
39
|
+
type: :runtime
|
|
40
|
+
prerelease: false
|
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
42
|
+
requirements:
|
|
43
|
+
- - "~>"
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '6'
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: minitest-hooks
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
requirements:
|
|
50
|
+
- - "~>"
|
|
40
51
|
- !ruby/object:Gem::Version
|
|
41
|
-
version: 5
|
|
52
|
+
version: '1.5'
|
|
42
53
|
type: :runtime
|
|
43
54
|
prerelease: false
|
|
44
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
45
56
|
requirements:
|
|
46
57
|
- - "~>"
|
|
47
58
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: '5
|
|
49
|
-
|
|
59
|
+
version: '1.5'
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: minitest-mock
|
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - "~>"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '5.27'
|
|
67
|
+
type: :runtime
|
|
68
|
+
prerelease: false
|
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - "~>"
|
|
50
72
|
- !ruby/object:Gem::Version
|
|
51
|
-
version: 5.
|
|
73
|
+
version: '5.27'
|
|
52
74
|
- !ruby/object:Gem::Dependency
|
|
53
75
|
name: minitest-stub_any_instance
|
|
54
76
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -97,14 +119,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
97
119
|
requirements:
|
|
98
120
|
- - ">="
|
|
99
121
|
- !ruby/object:Gem::Version
|
|
100
|
-
version: '3.
|
|
122
|
+
version: '3.2'
|
|
101
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
124
|
requirements:
|
|
103
125
|
- - ">="
|
|
104
126
|
- !ruby/object:Gem::Version
|
|
105
127
|
version: '0'
|
|
106
128
|
requirements: []
|
|
107
|
-
rubygems_version:
|
|
129
|
+
rubygems_version: 4.0.10
|
|
108
130
|
specification_version: 4
|
|
109
131
|
summary: Turn your README.md Ruby code blocks into testable code.
|
|
110
132
|
test_files: []
|