diff --git a/lib/rubocop/cop/style/when_then.rb b/lib/rubocop/cop/style/when_then.rb
index <HASH>..<HASH> 100644
--- a/lib/rubocop/cop/style/when_then.rb
+++ b/lib/rubocop/cop/style/when_then.rb
@@ -8,7 +8,7 @@ module RuboCop
         MSG = 'Do not use `when x;`. Use `when x then` instead.'.freeze
 
         def on_when(node)
-          return if node.multiline? || node.then?
+          return if node.multiline? || node.then? || !node.body
 
           add_offense(node, :begin)
         end
diff --git a/spec/rubocop/cop/style/when_then_spec.rb b/spec/rubocop/cop/style/when_then_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/rubocop/cop/style/when_then_spec.rb
+++ b/spec/rubocop/cop/style/when_then_spec.rb
@@ -39,4 +39,15 @@ describe RuboCop::Cop::Style::WhenThen do
                               'when b then c',
                               'end'].join("\n"))
   end
+
+  # Regression: https://github.com/bbatsov/rubocop/issues/3868
+  context 'when inspecting a case statement with an empty branch' do
+    it 'does not register an offense' do
+      inspect_source(cop, ['case value',
+                           'when cond1',
+                           'end'])
+
+      expect(cop.offenses).to be_empty
+    end
+  end
 end
[Fix #<I>] Prevent `Style/WhenThen` from breaking on an empty branch

This cop would blow up when inspecting a `case` statement with an empty
`when` branch. This was missing a test case, and a regression caused by
the introduction of node extensions.

This change fixes it.