From: Christian Heller Date: Wed, 5 Nov 2025 21:41:44 +0000 (+0100) Subject: On connecting attempt, log used config data to server window. X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/static/%7B%7Bdb.prefix%7D%7D/templates?a=commitdiff_plain;p=ircplom On connecting attempt, log used config data to server window. --- diff --git a/src/ircplom/client_tui.py b/src/ircplom/client_tui.py index fdfc22f..f44fdc3 100644 --- a/src/ircplom/client_tui.py +++ b/src/ircplom/client_tui.py @@ -347,7 +347,18 @@ class _TuiClientDb(_UpdatingNode, SharedClientDbFields): def recursive_set_and_report_change(self, update: _Update) -> None: super().recursive_set_and_report_change(update) if update.key == 'connection_state': - if update.value == 'connected': + if update.value == 'connecting': + for line in ( + 'attempting connection to' + + f' {self.hostname}:{self.port} identifying with …', + '- nickname: ' + self.nick_wanted, + '- realname: ' + self.realname, + '- username: ' + self.user_wanted, + '- ' + + (('password: ' + self.password) if self.password + else 'no password')): + update.results += [(_LogScope.SERVER, [f':{line}'])] + elif update.value == 'connected': update.results += [(_LogScope.ALL, [':CONNECTED'])] elif not update.value: update.results += [(_LogScope.ALL, [':DISCONNECTED'])] diff --git a/src/tests/_timeout_retries.test b/src/tests/_timeout_retries.test index 23bff19..19f09e7 100644 --- a/src/tests/_timeout_retries.test +++ b/src/tests/_timeout_retries.test @@ -13,6 +13,11 @@ log , $ DISCONNECTED × conn-retry log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to foo.bar.baz:10003 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: baz +log 2 $ - username: foobarbazquux +log 2 $ - password: bar log 1 $ port set to: [10002] log 1 $ connection_state set to: [failed to connect: FAKE TESTING TIMEOUT] @@ -25,18 +30,27 @@ log 1 $ password set to: [bar] insert conn-retry : +1 log 1 $ will retry connecting in 1 seconds insert conn-retry :1 +1 +log 2 $ attempting connection to foo.bar.baz:10002 identifying with … +insert conn-retry 2:6 +2 log 1 $ port set to: [10001] -insert conn-retry 2: +1 +insert conn-retry 7: +1 log 1 $ will retry connecting in 2 seconds insert conn-retry :1 +1 +log 2 $ attempting connection to foo.bar.baz:10001 identifying with … +insert conn-retry 2:6 +2 log 1 $ port set to: [10000] -insert conn-retry 2: +1 +insert conn-retry 7: +1 log 1 $ will retry connecting in 4 seconds × conn log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to foo.bar.baz:10000 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: baz +log 2 $ - username: foobarbazquux +log 2 $ - password: bar log 1 $ connection_state set to: [connected] -log , $ CONNECTED +log 2 $ CONNECTED log 1 > CAP LS :302 log 1 > USER foobarbazquux 0 * :baz log 1 > NICK :foo @@ -63,7 +77,7 @@ servermsg 0 no timely PONG from server log 1 $ connection_state set to: [broken: no timely PONG from server] insert isupport-clear log 1 $ connection_state set to: [] -log , $ DISCONNECTED +log 2 $ DISCONNECTED log 1 $ will retry connecting in 1 seconds # check /disconnect aborts retry chain @@ -74,13 +88,28 @@ wait 1 # on second server, check timed auto-retries don't activate after manual intervention > /connect baz.bar.foo:10003 foo:bar baz:foobarbazquux -insert clientwin-init : +2 -log 2 $ hostname set to: [baz.bar.foo] -insert conn-init-retries : +2 -> /window 2 +insert clientwin-init : +3 +log 3 $ hostname set to: [baz.bar.foo] +insert conn-init-retries :5 +3 +insert conn-retry :1 +3 +log 4 $ attempting connection to baz.bar.foo:10003 identifying with … +insert conn-retry 2: +3 +insert conn-init-retries 6:8 +3 +log 4 $ attempting connection to baz.bar.foo:10002 identifying with … +insert conn-retry 2:6 +4 +log 3 $ port set to: [10001] +insert conn-retry 7: +3 +insert conn-init-retries 12:14 +3 +log 4 $ attempting connection to baz.bar.foo:10001 identifying with … +insert conn-retry 2:6 +4 +log 3 $ port set to: [10000] +insert conn-init-retries 17:20 +3 +> /window 3 > /reconnect -insert conn : +2 +insert conn :1 +3 +log 4 $ attempting connection to baz.bar.foo:10000 identifying with … +insert conn 2: +3 wait 4 > /disconnect -log 2 > QUIT :ircplom says bye +log 3 > QUIT :ircplom says bye wait 4 diff --git a/src/tests/config.test b/src/tests/config.test index c890630..91a89c5 100644 --- a/src/tests/config.test +++ b/src/tests/config.test @@ -15,8 +15,13 @@ log 1 $ user_wanted set to: [baz] log 1 $ realname set to: [quux] log 1 $ password set to: [bar] log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to irc.test0.net:1234 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: quux +log 2 $ - username: baz +log 2 $ - password: bar log 1 $ connection_state set to: [connected] -log , $ CONNECTED +log 2 $ CONNECTED log 1 > CAP LS :302 log 1 > USER baz 0 * :quux log 1 > NICK :foo diff --git a/src/tests/connect_disconnect_legalities.test b/src/tests/connect_disconnect_legalities.test index 8904ccf..df08df8 100644 --- a/src/tests/connect_disconnect_legalities.test +++ b/src/tests/connect_disconnect_legalities.test @@ -5,15 +5,20 @@ log 1 $ isupport:PREFIX set to: [(ov)@+] log 1 $ isupport:USERLEN set to: [10] × connecting log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to foo.bar.baz:6697 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: bar +log 2 $ - username: baz +log 2 $ - no password log 1 $ connection_state set to: [connected] -log , $ CONNECTED +log 2 $ CONNECTED log 1 > CAP LS :302 log 1 > USER baz 0 * :bar log 1 > NICK :foo × disconnecting insert isupport-clear log 1 $ connection_state set to: [] -log , $ DISCONNECTED +log 2 $ DISCONNECTED × # to prepare, initiate connection diff --git a/src/tests/error_disconnects.test b/src/tests/error_disconnects.test index 9015eaa..247d4f3 100644 --- a/src/tests/error_disconnects.test +++ b/src/tests/error_disconnects.test @@ -5,15 +5,20 @@ log 1 $ isupport:PREFIX set to: [(ov)@+] log 1 $ isupport:USERLEN set to: [10] × connecting log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to foo.bar.baz:6697 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: bar +log 2 $ - username: baz +log 2 $ - no password log 1 $ connection_state set to: [connected] -log , $ CONNECTED +log 2 $ CONNECTED log 1 > CAP LS :302 log 1 > USER baz 0 * :bar log 1 > NICK :foo × disconnecting insert isupport-clear log 1 $ connection_state set to: [] -log , $ DISCONNECTED +log 2 $ DISCONNECTED × reconnect > /reconnect insert connecting diff --git a/src/tests/pingpong.test b/src/tests/pingpong.test index b5d571b..821f92c 100644 --- a/src/tests/pingpong.test +++ b/src/tests/pingpong.test @@ -6,8 +6,13 @@ log 1 $ isupport:USERLEN set to: [10] × conn log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to foo.bar.baz:6697 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: baz +log 2 $ - username: foobarbazquux +log 2 $ - password: bar log 1 $ connection_state set to: [connected] -log , $ CONNECTED +log 2 $ CONNECTED log 1 > CAP LS :302 log 1 > USER foobarbazquux 0 * :baz log 1 > NICK :foo @@ -58,7 +63,7 @@ insert full-timeout # on re-connect, ensure timer cleared, i.e. only 2nd time-out will disconnect > /window 1 > /reconnect -insert conn :2 +insert conn :7 log 2 $ CONNECTED -insert conn 3: +insert conn 8: insert full-timeout diff --git a/src/tests/test.test b/src/tests/test.test index df2bf9a..bc216b8 100644 --- a/src/tests/test.test +++ b/src/tests/test.test @@ -14,8 +14,13 @@ log , $ DISCONNECTED × conn_init_0 log 1 $ port set to: [6697] log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to foo.bar.baz:6697 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: baz +log 2 $ - username: foobarbazquux +log 2 $ - password: bar log 1 $ connection_state set to: [connected] -log , $ CONNECTED +log 2 $ CONNECTED log 1 > CAP LS :302 log 1 > USER foobarbazquux 0 * :baz log 1 > NICK :foo @@ -327,34 +332,72 @@ log 8 $ port set to: [-1] log 8 $ nick_wanted set to: [?foo] log 8 $ user_wanted set to: [foo] log 8 $ realname set to: [foo] -insert conn_init_0 :5 +8 +insert conn_init_0 :2 +8 +log 9 $ attempting connection to baz.bar.foo:6697 identifying with … +log 9 $ - nickname: ?foo +log 9 $ - realname: foo +log 9 $ - username: foo +log 9 $ - no password +insert conn_init_0 7:10 +8 log 8 > USER foo 0 * :foo log 8 > NICK :?foo loggedservermsg 1 8 < :*.?.net 432 * ?foo :Erroneous nickname -insert disconnect : +8 +insert disconnect :2 +8 +log 9 $ DISCONNECTED log 8 $ nickname refused for bad format, giving up +# zero unread-lines counts in status line so it won't explode simulated screen +> /window 2 +> /window 3 +> /window 4 +> /window 5 +> /window 6 +> /window 7 +> /window 8 +> /window 9 +> /window 1 + # test failing third connection > /connect baz.baz.baz baz baz:baz -insert standard-clear : +9 -log 9 $ hostname set to: [baz.baz.baz] -log 9 $ port set to: [-1] -log 9 $ nick_wanted set to: [baz] -log 9 $ user_wanted set to: [baz] -log 9 $ realname set to: [baz] -insert conn_init_0 :5 +9 -log 9 > USER baz 0 * :baz -log 9 > NICK :baz +insert standard-clear : +10 +log 10 $ hostname set to: [baz.baz.baz] +log 10 $ port set to: [-1] +log 10 $ nick_wanted set to: [baz] +log 10 $ user_wanted set to: [baz] +log 10 $ realname set to: [baz] +insert conn_init_0 :2 +10 +log 11 $ attempting connection to baz.baz.baz:6697 identifying with … +log 11 $ - nickname: baz +log 11 $ - realname: baz +log 11 $ - username: baz +log 11 $ - no password +insert conn_init_0 7:10 +10 +log 10 > USER baz 0 * :baz +log 10 > NICK :baz servermsg 2 FAKE_IRC_CONN_ABORT_EXCEPTION -log 9 $ connection_state set to: [broken: FAKE_IRC_CONN_ABORT_EXCEPTION] -insert disconnect : +9 -log 9 $ will retry connecting in 1 seconds +log 10 $ connection_state set to: [broken: FAKE_IRC_CONN_ABORT_EXCEPTION] +insert disconnect :2 +10 +log 11 $ DISCONNECTED +log 10 $ will retry connecting in 1 seconds + +# zero unread-lines counts in status line so it won't explode simulated screen +> /window 2 +> /window 3 +> /window 4 +> /window 5 +> /window 6 +> /window 7 +> /window 8 +> /window 9 +> /window 10 +> /window 11 +> /window 1 # check that (save TUI tests assuming start on window 0, and no 4 yet) on reconnect, all the same effects can be expected > /reconnect -insert conn_init_0 1:3 +insert conn_init_0 1:8 log 2,3,4,5,6,7 $ CONNECTED -insert conn_init_0 4: +insert conn_init_0 9: insert conn_init_1 insert conn_init_2 :1 log 1 > JOIN :#testtest diff --git a/src/tests/tui_draw.test b/src/tests/tui_draw.test index 07b3803..440d2c3 100644 --- a/src/tests/tui_draw.test +++ b/src/tests/tui_draw.test @@ -73,56 +73,56 @@ line 21 on_black,bright_white,reverse vvv [29] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv × status-[0]-prompt line 22 on_black,bright_white :start)=====================================================================([0]§§ insert prompt-empty -× status-[0]-1-prompt -line 22 on_black,bright_white :start)===================================================================([0] 1§§ +× status-[0]-1-(2:7)-prompt +line 22 on_black,bright_white :start)=============================================================([0] 1 (2:7)§§ insert prompt-empty -× status-[0]-1:2-prompt -line 22 on_black,bright_white :start)===============================================================([0] (1:2)§§ +× status-[0]-1:2-(2:7)-prompt +line 22 on_black,bright_white :start)=========================================================([0] (1:2) (2:7)§§ insert prompt-empty -× status-0-[1:2]-prompt -line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:2)]§§ +× status-0-[1:2]-(2:7)-prompt +line 22 on_black,bright_white foo.bar.baz:debug)==============================================(0 [(1:2)] (2:7)§§ insert prompt-empty -× status-[0]-1:4-prompt -line 22 on_black,bright_white :start)===============================================================([0] (1:4)§§ +× status-[0]-1:4-(2:7)-prompt +line 22 on_black,bright_white :start)=========================================================([0] (1:4) (2:7)§§ insert prompt-empty -× status-0-[1:4]-prompt -line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:4)]§§ +× status-0-[1:4]-(2:7)-prompt +line 22 on_black,bright_white foo.bar.baz:debug)==============================================(0 [(1:4)] (2:7)§§ insert prompt-empty -× status-[0]-1:6-prompt -line 22 on_black,bright_white :start)===============================================================([0] (1:6)§§ +× status-[0]-1:6-(2:7)-prompt +line 22 on_black,bright_white :start)=========================================================([0] (1:6) (2:7)§§ insert prompt-empty -× status-0-[1:6]-prompt -line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:6)]§§ +× status-0-[1:6]-(2:7)-prompt +line 22 on_black,bright_white foo.bar.baz:debug)==============================================(0 [(1:6)] (2:7)§§ insert prompt-empty -× status-0-[1:7]-prompt -line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:7)]§§ +× status-0-[1:7]-(2:7)-prompt +line 22 on_black,bright_white foo.bar.baz:debug)==============================================(0 [(1:7)] (2:7)§§ insert prompt-empty -× status-0-[1:18]-prompt -line 22 on_black,bright_white foo.bar.baz:debug)===================================================(0 [(1:18)]§§ +× status-0-[1:18]-(2:7)-prompt +line 22 on_black,bright_white foo.bar.baz:debug)=============================================(0 [(1:18)] (2:7)§§ insert prompt-empty -× status-[0]-1:29-prompt -line 22 on_black,bright_white :start)==============================================================([0] (1:29)§§ +× status-[0]-1:29-(2:7)-prompt +line 22 on_black,bright_white :start)========================================================([0] (1:29) (2:7)§§ insert prompt-empty -× status-0-[1:29]-prompt -line 22 on_black,bright_white foo.bar.baz:debug)===================================================(0 [(1:29)]§§ +× status-0-[1:29]-(2:7)-prompt +line 22 on_black,bright_white foo.bar.baz:debug)=============================================(0 [(1:29)] (2:7)§§ insert prompt-empty -× status-[0]-1:32-prompt -line 22 on_black,bright_white :start)==============================================================([0] (1:32)§§ +× status-[0]-1:32-(2:7)-prompt +line 22 on_black,bright_white :start)========================================================([0] (1:32) (2:7)§§ insert prompt-empty -× status-0-[1]-prompt -line 22 on_black,bright_white foo.bar.baz:debug)========================================================(0 [1]§§ +× status-0-[1]-(2:7)-prompt +line 22 on_black,bright_white foo.bar.baz:debug)==================================================(0 [1] (2:7)§§ insert prompt-empty × status-[0:1]-prompt line 22 on_black,bright_white :start)=================================================================([(0:1)]§§ insert prompt-empty -× status-[0:1]-1-prompt -line 22 on_black,bright_white :start)===============================================================([(0:1)] 1§§ +× status-[0:1]-1-(2:7)-prompt +line 22 on_black,bright_white :start)=========================================================([(0:1)] 1 (2:7)§§ insert prompt-empty -× status-0:1-[1]-prompt -line 22 on_black,bright_white foo.bar.baz:debug)====================================================((0:1) [1]§§ +× status-0:1-[1]-(2:7)-prompt +line 22 on_black,bright_white foo.bar.baz:debug)==============================================((0:1) [1] (2:7)§§ insert prompt-empty -× status-[0:1]-1:19-prompt -line 22 on_black,bright_white :start)==========================================================([(0:1)] (1:19)§§ +× status-[0:1]-1:19-(2:7)-prompt +line 22 on_black,bright_white :start)====================================================([(0:1)] (1:19) (2:7)§§ insert prompt-empty × status-[0:3]-prompt line 22 on_black,bright_white :start)=================================================================([(0:3)]§§ @@ -163,6 +163,7 @@ line 27 on_black,bright_red,bold unknown§§ line 28 on_black,bright_cyan # §§:§§:§§ windows available via /window:§§ line 29 on_black,bright_cyan # §§:§§:§§ 0) :start§§ line 30 on_black,bright_cyan # §§:§§:§§ 1) foo.bar.baz:debug§§ +line 31 on_black,bright_cyan # §§:§§:§§ 2) foo.bar.baz:server§§ × history_1 line 0 on_black,bright_white 20§§-§§-§§ §§ @@ -453,96 +454,102 @@ log 1 $ user_wanted set to: [baz] log 1 $ realname set to: [bar] log 1 $ port set to: [6697] log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to foo.bar.baz:6697 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: bar +log 2 $ - username: baz +log 2 $ - no password log 1 $ connection_state set to: [connected] -log , $ CONNECTED +log 2 $ CONNECTED log 1 > CAP LS :302 log 1 > USER baz 0 * :bar log 1 > NICK :foo insert lines-empty :20 insert history_0 :1 +20 insert scrolldown-25 -insert status-[0:1]-1:19-prompt +insert status-[0:1]-1:19-(2:7)-prompt # check switch to other window, updates to status line (movement of brackets, clearing of own unread-lines count) > /window 1 insert lines-empty :3 insert history_1 :19 +3 -insert status-0:1-[1]-prompt +insert status-0:1-[1]-(2:7)-prompt # check switch-back to window 0, retaining clearing of window 1's unread-lines count > /window 0 insert lines-empty :20 insert history_0 :1 +20 insert scrolldown-25 -insert status-[0:1]-1-prompt +insert status-[0:1]-1-(2:7)-prompt # check that on full scroll-down, we now have a bookmark above the newest lines not previously scrolled into > /window.history.scroll down insert lines-empty :9 insert history_0 :12 +9 insert scrolldown-14 -insert status-[0:1]-1-prompt +insert status-[0:1]-1-(2:7)-prompt > /window.history.scroll down insert history_0 2:23 +0 insert scrolldown-3 -insert status-[0:1]-1-prompt +insert status-[0:1]-1-(2:7)-prompt > /window.history.scroll down insert history_0 7:26 +0 insert bookmark : +19 insert history_0 26:28 +20 -insert status-[0]-1-prompt +insert status-[0]-1-(2:7)-prompt # check that scrolling non-bottom bookmark out of sight, then scrolling it back into view again does not by itself move its position in the log history > /window.history.scroll up insert lines-empty :3 insert history_0 :18 +3 insert scrolldown-8 -insert status-[0]-1-prompt +insert status-[0]-1-(2:7)-prompt > /window.history.scroll down insert history_0 7:26 +0 insert bookmark : +19 insert history_0 26:28 +20 -insert status-[0]-1-prompt +insert status-[0]-1-(2:7)-prompt # check that second switch to new window, previously left on bottom of history, establishes bookmark at bottom of log > /window 1 insert lines-empty :2 insert history_1 :19 +2 insert bookmark : +21 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt # check second switch-back places bookmark at bottom there too, since the newest lines previously succeeding it have now been read by us > /window 0 insert history_0 7:28 +0 insert bookmark : +21 -insert status-[0]-1-prompt +insert status-[0]-1-(2:7)-prompt # check new lines push bookmark up > /list log 0 # windows available via /window: log 0 # 0) :start log 0 # 1) foo.bar.baz:debug -insert history_0 10:28 +0 -insert bookmark : +18 -insert history_0 28:31 +19 -insert status-[0]-1-prompt +log 0 # 2) foo.bar.baz:server +insert history_0 11:28 +0 +insert bookmark : +17 +insert history_0 28:32 +18 +insert status-[0]-1-(2:7)-prompt # check new lines growing in other window, one of which long enough to wrap, to be re-start count in status (with wrapped only as single) loggedservermsg 0 1 < PING :? log 1 > PONG :? loggedservermsg 0 1 < PING :9 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 log 1 > PONG :9 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 -insert history_0 10:28 +0 -insert bookmark : +18 -insert history_0 28:31 +19 -insert status-[0]-1:4-prompt +insert history_0 11:28 +0 +insert bookmark : +17 +insert history_0 28:32 +18 +insert status-[0]-1:4-(2:7)-prompt # check that switching to window with new lines, but left scroll-to-bottom, keeps the scroll-to-bottom, keeps bookmark after last line previously seen there > /window 1 insert history_1 4:19 +0 insert bookmark : +15 insert history_1 19:25 +16 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt ### # check that growth below scroll does not by itself re-position bookmark in history > /window.history.scroll up @@ -551,65 +558,65 @@ log 1 > PONG :foo insert lines-empty :6 insert history_1 0:15 +6 insert scrolldown-10 -insert status-0-[1:2]-prompt +insert status-0-[1:2]-(2:7)-prompt > /window.history.scroll down insert history_1 5:19 +0 insert bookmark : +14 insert history_1 19:25 +15 insert scrolldown-2 -insert status-0-[1:2]-prompt +insert status-0-[1:2]-(2:7)-prompt # check that with new lines left unread, switch away and back into window moves bookmark below newest read line, counts unread lines in status > /window 0 -insert history_0 10:31 +0 +insert history_0 11:32 +0 insert bookmark : +21 -insert status-[0]-1:2-prompt +insert status-[0]-1:2-(2:7)-prompt > /window 1 insert history_1 5:25 +0 insert bookmark : +20 insert scrolldown-2 -insert status-0-[1:2]-prompt +insert status-0-[1:2]-(2:7)-prompt # check that growing lines below scroll in other preserves non-bottom bookmark (left in sight on previous window leave) > /window 0 loggedservermsg 0 1 < PING :bar log 1 > PONG :bar -insert history_0 10:31 +0 +insert history_0 11:32 +0 insert bookmark : +21 -insert status-[0]-1:4-prompt +insert status-[0]-1:4-(2:7)-prompt > /window 1 insert history_1 5:25 +0 insert bookmark : +20 insert scrolldown-4 -insert status-0-[1:4]-prompt +insert status-0-[1:4]-(2:7)-prompt # check same applies when leaving affected window with bookmark out-of-sight > /window.history.scroll up insert lines-empty :6 insert history_1 :15 +6 insert scrolldown-12 -insert status-0-[1:4]-prompt +insert status-0-[1:4]-(2:7)-prompt > /window 0 loggedservermsg 0 1 < PING :baz log 1 > PONG :baz -insert history_0 10:31 +0 +insert history_0 11:32 +0 insert bookmark : +21 -insert status-[0]-1:6-prompt +insert status-[0]-1:6-(2:7)-prompt > /window 1 insert lines-empty :6 insert history_1 :15 +6 insert scrolldown-14 -insert status-0-[1:6]-prompt +insert status-0-[1:6]-(2:7)-prompt > /window.history.scroll down insert history_1 5:25 +0 insert bookmark : +20 insert scrolldown-6 -insert status-0-[1:6]-prompt +insert status-0-[1:6]-(2:7)-prompt > /window.history.scroll down insert history_1 10:25 +0 insert bookmark : +15 insert history_1 25:31 +16 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt # check log growth beyond max depth only remarkable after scrolling up to limit loggedservermsg 0 1 < PING :0 @@ -617,21 +624,21 @@ log 1 > PONG :0 insert history_1 12:25 +0 insert bookmark : +13 insert history_1 25:33 +14 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt > /window.history.scroll up insert history_1 2:23 +0 insert scrolldown-9 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt > /window.history.scroll up insert lines-empty :10 insert history_1 1:12 +10 insert scrolldown-19 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt > /window.history.scroll up insert lines-empty :20 insert history_1 1:2 +20 insert scrolldown-29 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt # check cut-off log growth seen from topmost scroll not affecting scrolldown count, but unread-lines status loggedservermsg 0 1 < PING :0 @@ -639,13 +646,13 @@ log 1 > PONG :0 insert lines-empty :20 insert history_1 3:4 +20 insert scrolldown-29 -insert status-0-[1:2]-prompt +insert status-0-[1:2]-(2:7)-prompt # check unread-lines count potentially growing above max log depth if in other window > /window 0 -insert history_0 10:31 +0 +insert history_0 11:32 +0 insert bookmark : +21 -insert status-[0]-1:2-prompt +insert status-[0]-1:2-(2:7)-prompt loggedservermsg 0 1 < PING :1 log 1 > PONG :1 loggedservermsg 0 1 < PING :2 @@ -676,61 +683,61 @@ loggedservermsg 0 1 < PING :14 log 1 > PONG :14 loggedservermsg 0 1 < PING :15 log 1 > PONG :15 -insert history_0 10:31 +0 +insert history_0 11:32 +0 insert bookmark : +21 -insert status-[0]-1:32-prompt +insert status-[0]-1:32-(2:7)-prompt # check switching into window scrolled-top with more unread lines than max log depth shrinks former to latter, and scrolling down no bookmark is to be found > /window 1 insert lines-empty :20 insert history_1 33:34 +20 insert scrolldown-29 -insert status-0-[1:29]-prompt +insert status-0-[1:29]-(2:7)-prompt > /window.history.scroll down insert lines-empty :9 insert history_1 33:45 +9 insert scrolldown-18 -insert status-0-[1:18]-prompt +insert status-0-[1:18]-(2:7)-prompt > /window.history.scroll down insert history_1 35:56 +0 insert scrolldown-7 -insert status-0-[1:7]-prompt +insert status-0-[1:7]-(2:7)-prompt > /window.history.scroll down insert history_1 41:61 +0 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt # check bookmark remains absent with log growing while scrolled to bottom, … loggedservermsg 0 1 < PING :16 log 1 > PONG :16 insert history_1 43:63 +0 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt # … as well as if further growth happens below scroll > /window.history.scroll up insert lines-empty :2 insert history_1 35:54 +2 insert scrolldown-11 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt loggedservermsg 0 1 < PING :17 log 1 > PONG :17 insert lines-empty :4 insert history_1 37:54 +4 insert scrolldown-13 -insert status-0-[1:2]-prompt +insert status-0-[1:2]-(2:7)-prompt > /window.history.scroll down insert history_1 44:65 +0 insert scrolldown-2 -insert status-0-[1:2]-prompt +insert status-0-[1:2]-(2:7)-prompt > /window.history.scroll down insert history_1 45:67 +0 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt # check unread-lines status not growing beyond max log if within active window, and … > /window.history.scroll up insert lines-empty :2 insert history_1 37:54 +2 insert scrolldown-11 -insert status-0-[1]-prompt +insert status-0-[1]-(2:7)-prompt loggedservermsg 0 1 < PING :18 log 1 > PONG :18 loggedservermsg 0 1 < PING :19 @@ -764,23 +771,23 @@ log 1 > PONG :32 insert lines-empty :20 insert history_1 67:68 +20 insert scrolldown-29 -insert status-0-[1:29]-prompt +insert status-0-[1:29]-(2:7)-prompt # … setting bookmark visible after switching back-and-forth > /window 0 -insert history_0 10:31 +0 +insert history_0 11:32 +0 insert bookmark : +21 -insert status-[0]-1:29-prompt +insert status-[0]-1:29-(2:7)-prompt > /window 1 insert lines-empty :19 insert history_1 67:68 +19 insert bookmark : +20 insert scrolldown-29 -insert status-0-[1:29]-prompt +insert status-0-[1:29]-(2:7)-prompt > /window.history.scroll down insert lines-empty :8 insert history_1 67:68 +8 insert bookmark : +9 insert history_1 68:79 +10 insert scrolldown-18 -insert status-0-[1:18]-prompt +insert status-0-[1:18]-(2:7)-prompt diff --git a/src/tests/tui_line_formattings.test b/src/tests/tui_line_formattings.test index 48b418d..c1935d5 100644 --- a/src/tests/tui_line_formattings.test +++ b/src/tests/tui_line_formattings.test @@ -14,8 +14,13 @@ log 1 $ user_wanted set to: [baz] log 1 $ realname set to: [bar] log 1 $ port set to: [6697] log 1 $ connection_state set to: [connecting] +log 2 $ attempting connection to foo.bar.baz:6697 identifying with … +log 2 $ - nickname: foo +log 2 $ - realname: bar +log 2 $ - username: baz +log 2 $ - no password log 1 $ connection_state set to: [connected] -log , $ CONNECTED +log 2 $ CONNECTED log 1 > CAP LS :302 log 1 > USER baz 0 * :bar log 1 > NICK :foo