render_turbo_stream 0.1.32 → 0.1.34
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/README.md +6 -3
- data/lib/render_turbo_stream/request_test_helpers.rb +47 -3
- data/lib/render_turbo_stream/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95e94563d2f1c54311f3755286e2ace6f4f258c63f443b305043cf2c7611cd4f
|
4
|
+
data.tar.gz: e7deed853515642b52503f1f870e436ad4870359320b7fc88d179e10b9d60943
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a34007581d53530c7f96f1aff79af28594303c856dea1913708d913794a4020f8203c98ffd8a6538446e1a85295436a7d466ff1e09f3171615af7eac6afff781
|
7
|
+
data.tar.gz: f7fa39fbd0932a58112168abe638f323f1f3a3ae98d1ddd9fc700e504d741dfbc04dfb666ecd34cff42ff6b6ca0ab236ad94fbd05e48f55c8b75b5da19593c10
|
data/README.md
CHANGED
@@ -111,14 +111,17 @@ RSpec.describe "Articles", type: :request do
|
|
111
111
|
|
112
112
|
post articles_path(params: invalid_params)
|
113
113
|
|
114
|
-
#
|
114
|
+
# --- BASIC TEST ---
|
115
|
+
|
116
|
+
# Count of rendered partials
|
115
117
|
expect(partials_count).to eq(2)
|
116
|
-
|
118
|
+
# Make sure that each of these partials is rendered exactly once.
|
119
|
+
expect(partials_once).to include('layouts/flash', 'articles/form')
|
117
120
|
|
118
121
|
|
119
122
|
|
120
123
|
|
121
|
-
#
|
124
|
+
# --- MORE OPTIONS ---
|
122
125
|
|
123
126
|
# to which html-ids turbo-stream would point
|
124
127
|
expect(partials_ids).to include('flash-box', 'form')
|
@@ -26,7 +26,7 @@ module RenderTurboStream
|
|
26
26
|
else
|
27
27
|
raise 'missing parameter'
|
28
28
|
end
|
29
|
-
res.map{|r| Nokogiri::HTML(r['html_response']) }
|
29
|
+
res.map { |r| Nokogiri::HTML(r['html_response']) }
|
30
30
|
end
|
31
31
|
|
32
32
|
def partials_ids_count
|
@@ -41,7 +41,7 @@ module RenderTurboStream
|
|
41
41
|
def partials_ids
|
42
42
|
ary = partials_attributes
|
43
43
|
ids = []
|
44
|
-
ary.each {|a| ids.push(a['id']) unless ids.include?(a['id']) }
|
44
|
+
ary.each { |a| ids.push(a['id']) unless ids.include?(a['id']) }
|
45
45
|
ids
|
46
46
|
end
|
47
47
|
|
@@ -49,10 +49,54 @@ module RenderTurboStream
|
|
49
49
|
def partials
|
50
50
|
ary = partials_attributes
|
51
51
|
paths = []
|
52
|
-
ary.each {|a| paths.push(a['partial']) unless paths.include?(a['partial']) }
|
52
|
+
ary.each { |a| paths.push(a['partial']) unless paths.include?(a['partial']) }
|
53
53
|
paths
|
54
54
|
end
|
55
55
|
|
56
|
+
# without arguments: returns array of strings of paths by which partials that are exactly one time rendered, for example: ['articles/form'].
|
57
|
+
# if arguments provided: compares with result and returns boolean
|
58
|
+
# examples:
|
59
|
+
# partials_once('articles/flash_box') => check flash-box is exactly one time rendered and no others
|
60
|
+
# partials_once({partial: 'articles/flash_box', id: 'flash-box'}) => check flash-box is exactly one time rendered
|
61
|
+
# partials_once({partial: 'articles/flash_box', id: 'flash-box'}) => check flash-box is exactly one time rendered to id 'flash-box'
|
62
|
+
def partials_once(*args)
|
63
|
+
ary = partials_attributes
|
64
|
+
paths = []
|
65
|
+
paths_once = []
|
66
|
+
ary.each do |a|
|
67
|
+
if paths.include?(a['partial'])
|
68
|
+
paths_once.delete(a['partial'])
|
69
|
+
else
|
70
|
+
paths.push(a['partial'])
|
71
|
+
paths_once.push(a['partial'])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
if args.present?
|
75
|
+
paths_once
|
76
|
+
if args.length == paths_once.length
|
77
|
+
res = true
|
78
|
+
args.each do |a|
|
79
|
+
if a.is_a?(String) && !paths_once.include?(a)
|
80
|
+
res = false
|
81
|
+
elsif a.is_a?(Hash)
|
82
|
+
_a = a.symbolize_keys
|
83
|
+
if !paths_once.include?(_a[:partial])
|
84
|
+
res = false
|
85
|
+
elsif _a.key?(:id)
|
86
|
+
r = ary.select{|a|a['partial'] == _a[:partial]}.first
|
87
|
+
res = r['id'] == _a[:id]
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
res
|
92
|
+
else
|
93
|
+
false
|
94
|
+
end
|
95
|
+
else
|
96
|
+
paths_once
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
56
100
|
# returns an array of hashes with the attributes used to call partials and the response (html as string) from the partial.
|
57
101
|
def partials_attributes
|
58
102
|
e = Nokogiri::HTML(response.body).search('#rendered-partials').first
|