@@ -105,19 +105,53 @@ describe("renderSessionCard", () => {
105105 expect ( html ) . toContain ( "anthropic / claude-sonnet" ) ;
106106 } ) ;
107107
108- test ( "adds active recency class for very recent sessions " , ( ) => {
108+ test ( "adds active recency class for sessions < 5 min old " , ( ) => {
109109 const now = new Date ( ) ;
110110 const lastSeen = now . toISOString ( ) . replace ( "T" , " " ) . slice ( 0 , 19 ) ;
111111 const html = renderSessionCard ( makeSession ( { last_seen : lastSeen } ) ) ;
112112 expect ( html ) . toContain ( "session-card--active" ) ;
113113 } ) ;
114114
115- test ( "no recency class for old sessions" , ( ) => {
115+ test ( "adds recent recency class for sessions < 1 h old" , ( ) => {
116+ const seen = new Date ( Date . now ( ) - 10 * 60 * 1000 ) ;
117+ const lastSeen = seen . toISOString ( ) . replace ( "T" , " " ) . slice ( 0 , 19 ) ;
118+ const html = renderSessionCard ( makeSession ( { last_seen : lastSeen } ) ) ;
119+ expect ( html ) . toContain ( "session-card--recent" ) ;
120+ expect ( html ) . not . toContain ( "session-card--active" ) ;
121+ } ) ;
122+
123+ test ( "adds idle recency class for sessions < 8 h old" , ( ) => {
124+ const seen = new Date ( Date . now ( ) - 2 * 60 * 60 * 1000 ) ;
125+ const lastSeen = seen . toISOString ( ) . replace ( "T" , " " ) . slice ( 0 , 19 ) ;
126+ const html = renderSessionCard ( makeSession ( { last_seen : lastSeen } ) ) ;
127+ expect ( html ) . toContain ( "session-card--idle" ) ;
128+ expect ( html ) . not . toContain ( "session-card--recent" ) ;
129+ } ) ;
130+
131+ test ( "adds stale recency class for sessions < 16 h old" , ( ) => {
132+ const seen = new Date ( Date . now ( ) - 10 * 60 * 60 * 1000 ) ;
133+ const lastSeen = seen . toISOString ( ) . replace ( "T" , " " ) . slice ( 0 , 19 ) ;
134+ const html = renderSessionCard ( makeSession ( { last_seen : lastSeen } ) ) ;
135+ expect ( html ) . toContain ( "session-card--stale" ) ;
136+ expect ( html ) . not . toContain ( "session-card--idle" ) ;
137+ } ) ;
138+
139+ test ( "adds old recency class for sessions < 24 h old" , ( ) => {
140+ const seen = new Date ( Date . now ( ) - 20 * 60 * 60 * 1000 ) ;
141+ const lastSeen = seen . toISOString ( ) . replace ( "T" , " " ) . slice ( 0 , 19 ) ;
142+ const html = renderSessionCard ( makeSession ( { last_seen : lastSeen } ) ) ;
143+ expect ( html ) . toContain ( "session-card--old" ) ;
144+ expect ( html ) . not . toContain ( "session-card--stale" ) ;
145+ } ) ;
146+
147+ test ( "no recency class for sessions >= 24 h old" , ( ) => {
116148 const html = renderSessionCard (
117149 makeSession ( { last_seen : "2020-01-01 00:00:00" } ) ,
118150 ) ;
119151 expect ( html ) . not . toContain ( "session-card--active" ) ;
120152 expect ( html ) . not . toContain ( "session-card--recent" ) ;
121153 expect ( html ) . not . toContain ( "session-card--idle" ) ;
154+ expect ( html ) . not . toContain ( "session-card--stale" ) ;
155+ expect ( html ) . not . toContain ( "session-card--old" ) ;
122156 } ) ;
123157} ) ;
0 commit comments