|
4 | 4 |
|
5 | 5 | module WebConsole
|
6 | 6 | class SessionTest < ActiveSupport::TestCase
|
7 |
| - class LineAwareError < StandardError |
8 |
| - def self.raise |
9 |
| - ::Kernel.raise new(__LINE__) |
| 7 | + class ValueAwareError < StandardError |
| 8 | + def self.raise(value) |
| 9 | + ::Kernel.raise self, value |
10 | 10 | rescue => exc
|
11 | 11 | exc
|
12 | 12 | end
|
13 | 13 |
|
14 |
| - attr_reader :line |
| 14 | + attr_reader :value |
15 | 15 |
|
16 |
| - def initialize(line) |
17 |
| - @line = line |
| 16 | + def initialize(value) |
| 17 | + @value = value |
18 | 18 | end
|
19 | 19 | end
|
20 | 20 |
|
@@ -52,38 +52,39 @@ def eval(string)
|
52 | 52 | end
|
53 | 53 |
|
54 | 54 | test "#from can create session from a single binding" do
|
55 |
| - saved_line, saved_binding = __LINE__, binding |
| 55 | + value, saved_binding = __LINE__, binding |
56 | 56 | Thread.current[:__web_console_binding] = saved_binding
|
57 | 57 |
|
58 | 58 | session = Session.from(__web_console_binding: saved_binding)
|
59 | 59 |
|
60 |
| - assert_equal "=> #{saved_line}\n", session.eval("__LINE__") |
| 60 | + assert_equal "=> #{value}\n", session.eval("value") |
61 | 61 | end
|
62 | 62 |
|
63 | 63 | test "#from can create session from an exception" do
|
64 |
| - exc = LineAwareError.raise |
| 64 | + value = __LINE__ |
| 65 | + exc = ValueAwareError.raise(value) |
65 | 66 |
|
66 | 67 | session = Session.from(__web_console_exception: exc)
|
67 | 68 |
|
68 |
| - assert_equal "=> #{exc.line}\n", session.eval("__LINE__") |
| 69 | + assert_equal "=> #{exc.value}\n", session.eval("value") |
69 | 70 | end
|
70 | 71 |
|
71 | 72 | test "#from can switch to bindings" do
|
72 |
| - exc, saved_line = LineAwareError.raise, __LINE__ |
| 73 | + value = __LINE__ |
| 74 | + exc = ValueAwareError.raise(value) |
73 | 75 |
|
74 | 76 | session = Session.from(__web_console_exception: exc)
|
75 | 77 | session.switch_binding_to(1)
|
76 | 78 |
|
77 |
| - assert_equal "=> #{saved_line}\n", session.eval("__LINE__") |
| 79 | + assert_equal "=> #{value}\n", session.eval("value") |
78 | 80 | end
|
79 | 81 |
|
80 | 82 | test "#from prioritizes exceptions over bindings" do
|
81 |
| - exc, saved_line = LineAwareError.raise, __LINE__ |
| 83 | + exc = ValueAwareError.raise(42) |
82 | 84 |
|
83 | 85 | session = Session.from(__web_console_exception: exc, __web_console_binding: binding)
|
84 |
| - session.switch_binding_to(1) |
85 | 86 |
|
86 |
| - assert_equal "=> #{saved_line}\n", session.eval("__LINE__") |
| 87 | + assert_equal "=> WebConsole::SessionTest::ValueAwareError\n", session.eval("self") |
87 | 88 | end
|
88 | 89 | end
|
89 | 90 | end
|
0 commit comments