danger-dangermattic 1.2.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '094bf199c42dcc05762611116e76958dd679f4fd528aee911a0f2e56cef7ec1e'
4
- data.tar.gz: 0ea8f18010582cf5d91d0f75a5e7aeadf677fce8bf46fe9d006f0b2cb5985c15
3
+ metadata.gz: 475e995ad47a8b43461803346efd892f806b60b95714f31fa7ff5c44c7148a80
4
+ data.tar.gz: 9ce8906845c50e840c4e129f419f93d7907fb3cc001daeaa8cb66db1390d2de3
5
5
  SHA512:
6
- metadata.gz: 477a907cde572da9e3c5a76eee541e38b82a240a12b8691dec4c2a1697ebb7a664b80836d5eca45513d26a95e270e67b9cbcde08562f9abb691684fa47a21b93
7
- data.tar.gz: cc0e1a03b5ddb87b3a7961665f7318feceaff2efe437d261b484c5fad1455a78872c719baee93642d0698dc24314bbc4a22cdb9218c8bc80c7ae6997bfbf55f3
6
+ metadata.gz: 87f999a8b4c043997a558305046a8263c0218ce2c14da8359ff1d998d55690345bacd1914c2ef75417503cd54dcb1b99f59c5deaa40f1ea0508c09a7804a8365
7
+ data.tar.gz: 13916d9ab80f9ab9e1e9252a431e0807198f11130d199b1d144b7d9baaad7416289f9b72ce11fc90384da2d63f49fb358b4414c9fade23d5658bf588f65b0530
data/CHANGELOG.md CHANGED
@@ -20,6 +20,13 @@ _None_
20
20
 
21
21
  _None_
22
22
 
23
+ ## 1.2.1
24
+
25
+ ### Bug Fixes
26
+
27
+ - Fix `android_unit_test_checker` plugin so it doesn't detect private, enum, and data classes. [#92]
28
+ - `view_changes_checker`: update view checker regex to cover GHE user storage URLs [#91]
29
+
23
30
  ## 1.2.0
24
31
 
25
32
  ### New Features
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-dangermattic (1.2.0)
4
+ danger-dangermattic (1.2.1)
5
5
  danger (~> 9.4)
6
6
  danger-plugin-api (~> 1.0)
7
7
  danger-rubocop (~> 0.13)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dangermattic
4
- VERSION = '1.2.0'
4
+ VERSION = '1.2.1'
5
5
  end
@@ -24,7 +24,14 @@ module Danger
24
24
  #
25
25
  class AndroidUnitTestChecker < Plugin
26
26
  ANY_CLASS_DETECTOR = /class\s+([A-Z]\w+)\s*(.*?)\s*{/m
27
- NON_PRIVATE_CLASS_DETECTOR = /(?:\s|public|internal|protected|final|abstract|static)*class\s+([A-Z]\w+)\s*(.*?)\s*{/m
27
+ CLASS_MODIFIER_DETECTOR = /((?:\s|public|internal|protected|private|final|abstract|static|data|enum)*)class\s+([A-Z]\w+)\s*(.*?)\s*{/m
28
+
29
+ CLASS_MODIFIER_EXCEPTIONS = [
30
+ /\s*data\s*/,
31
+ /\s*private\s*/,
32
+ /\s*enum\s*/
33
+ ].freeze
34
+
28
35
  DEFAULT_CLASSES_EXCEPTIONS = [
29
36
  /ViewHolder$/,
30
37
  /Module$/,
@@ -142,7 +149,7 @@ module Danger
142
149
  # @return [Array<ClassViolation>] An array of ClassViolation objects representing the violations found.
143
150
  def find_violations(path:, diff_patch:, classes_exceptions:, subclasses_exceptions:)
144
151
  added_lines = git_utils.added_lines(diff_patch: diff_patch)
145
- matches = added_lines.scan(NON_PRIVATE_CLASS_DETECTOR)
152
+ matches = added_lines.scan(CLASS_MODIFIER_DETECTOR)
146
153
  matches.reject! do |m|
147
154
  class_match_is_exception?(
148
155
  m,
@@ -152,7 +159,7 @@ module Danger
152
159
  )
153
160
  end
154
161
 
155
- matches.map { |m| ClassViolation.new(m[0], path) }
162
+ matches.map { |m| ClassViolation.new(m[1], path) }
156
163
  end
157
164
 
158
165
  # Finds the names of removed classes based on the removals the diff patch.
@@ -173,10 +180,11 @@ module Danger
173
180
  #
174
181
  # @return [void]
175
182
  def class_match_is_exception?(match, file, classes_exceptions, subclasses_exceptions)
176
- return true if classes_exceptions.any? { |re| match[0] =~ re }
183
+ return true if classes_exceptions.any? { |re| match[1] =~ re }
184
+ return true if CLASS_MODIFIER_EXCEPTIONS.any? { |re| match[0] =~ re }
177
185
 
178
186
  subclass_regexp = File.extname(file) == '.java' ? /extends\s+([A-Z]\w+)/m : /\s*:\s*([A-Z]\w+)/m
179
- subclass = match[1].scan(subclass_regexp)&.last&.last
187
+ subclass = match[2].scan(subclass_regexp)&.last&.last
180
188
  subclasses_exceptions.any? { |re| subclass =~ re }
181
189
  end
182
190
 
@@ -19,6 +19,7 @@ module Danger
19
19
  %r{https?://\S*\.(gif|jpg|jpeg|png|svg)},
20
20
  %r{https?://\S*\.(mp4|avi|mov|mkv)},
21
21
  %r{https?://\S*github\S+/\S+/assets/},
22
+ %r{https?://\S*github\S+/storage/user/},
22
23
  /!\[(.*?)\]\((.*?)\)/,
23
24
  /<img\s+[^>]*src\s*=\s*[^>]*>/,
24
25
  /<video\s+[^>]*src\s*=\s*[^>]*>/
@@ -283,6 +283,20 @@ module Danger
283
283
 
284
284
  expect(@dangerfile).to not_report
285
285
  end
286
+
287
+ it 'does not report private class' do
288
+ added_files = %w[
289
+ PublicAndPrivateType.kt
290
+ src/androidTest/java/org/test/PublicTypeTest.kt
291
+ ]
292
+
293
+ diff = generate_add_diff_from_fixtures(added_files)
294
+ allow(@dangerfile.git).to receive(:diff).and_return(diff)
295
+
296
+ @plugin.check_missing_tests
297
+
298
+ expect(@dangerfile).to not_report
299
+ end
286
300
  end
287
301
 
288
302
  def generate_add_diff_from_fixtures(paths)
@@ -0,0 +1,7 @@
1
+ class PublicType {
2
+ fun print() = "Hello, ${PrivateType().print()}!"
3
+ }
4
+
5
+ private class PrivateType {
6
+ fun print() = "World"
7
+ }
@@ -0,0 +1,4 @@
1
+ class PublicTypeTest
2
+ {
3
+ fun test() { PublicType().print() }
4
+ }
@@ -92,6 +92,15 @@ module Danger
92
92
 
93
93
  expect(@dangerfile).to not_report
94
94
  end
95
+
96
+ it 'does nothing when a PR with view code changes has a video defined with a simple GHE storage user files URL' do
97
+ allow(@plugin.github).to receive(:pr_body)
98
+ .and_return("see image:\nhttps://github.tumblr.net/storage/user/1327/files/9b6fde2b-b20e-4d82-938a-6fab63897723 body body")
99
+
100
+ @plugin.check
101
+
102
+ expect(@dangerfile).to not_report
103
+ end
95
104
  end
96
105
 
97
106
  shared_examples 'PR without view code changes' do |modified_files|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-dangermattic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Automattic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-01 00:00:00.000000000 Z
11
+ date: 2024-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger
@@ -249,6 +249,7 @@ files:
249
249
  - spec/fixtures/android_unit_test_checker/AnotherViewHelper.kt
250
250
  - spec/fixtures/android_unit_test_checker/MyNewClass.java
251
251
  - spec/fixtures/android_unit_test_checker/Polygon.kt
252
+ - spec/fixtures/android_unit_test_checker/PublicAndPrivateType.kt
252
253
  - spec/fixtures/android_unit_test_checker/Shape.kt
253
254
  - spec/fixtures/android_unit_test_checker/TestsINeedThem.java
254
255
  - spec/fixtures/android_unit_test_checker/TestsINeedThem.kt
@@ -263,6 +264,7 @@ files:
263
264
  - spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/AbcTests.java
264
265
  - spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/AnotherTestClass.java
265
266
  - spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/PolygonTest.kt
267
+ - spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/PublicTypeTest.kt
266
268
  - spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/TestMyNewClass.java
267
269
  - spec/fixtures/android_unit_test_checker/src/androidTest/java/org/test/ToolTest.kt
268
270
  - spec/fixtures/android_unit_test_checker/src/main/java/org/wordpress/android/widgets/NestedWebView.kt