File: delete_test.rb

package info (click to toggle)
ruby-byebug 11.1.3-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,252 kB
  • sloc: ruby: 8,835; ansic: 1,662; sh: 6; makefile: 4
file content (68 lines) | stat: -rw-r--r-- 1,810 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# frozen_string_literal: true

require "test_helper"

module Byebug
  #
  # Tests deleting breakpoints.
  #
  class DeleteTest < TestCase
    def program
      strip_line_numbers <<-RUBY
        1:  module Byebug
        2:    #
        3:    # Toy class to test breakpoints
        4:    #
        5:    class #{example_class}
        6:      def add_two(n)
        7:        byebug
        8:        n += 1
        9:        n += 1
       10:        n
       11:      end
       12:    end
       13:
       14:    #{example_class}.new.add_two(0)
       15:  end
      RUBY
    end

    def test_deleting_a_breakpoint_removes_it_from_breakpoints_list
      enter "break 9", -> { "delete #{Breakpoint.first.id}" }

      debug_code(program) { assert_empty Byebug.breakpoints }
    end

    def test_deleting_a_breakpoint_shows_a_success_message
      enter "break 9", -> { "delete #{Breakpoint.first.id}" }
      debug_code(program)

      check_output_includes(/Deleted breakpoint/)
    end

    def test_does_not_stop_at_the_deleted_breakpoint
      enter "b 9", "b 10", -> { "delete #{Breakpoint.first.id}" }, "cont"

      debug_code(program) { assert_equal 10, frame.line }
    end

    def test_delete_by_itself_deletes_all_breakpoints_if_confirmed
      enter "break 9", "break 10", "delete", "y"

      debug_code(program) { assert_empty Byebug.breakpoints }
    end

    def test_delete_by_itself_keeps_current_breakpoints_if_not_confirmed
      enter "break 9", "break 10", "delete", "n"

      debug_code(program) { assert_equal 2, Byebug.breakpoints.size }
    end

    def test_delete_with_an_invalid_breakpoint_id_shows_error
      enter "break 9", -> { "delete #{Breakpoint.last.id + 1}" }, "cont"
      debug_code(program)

      check_error_includes(/No breakpoint number/)
    end
  end
end