from __future__ import annotations from django.test import TestCase from django.urls import reverse from core.models import ContactAvailabilitySettings, User class AvailabilitySettingsPageTests(TestCase): def setUp(self): self.user = User.objects.create_user("avail-user", "avail@example.com", "x") self.client.force_login(self.user) def test_get_page_renders(self): response = self.client.get(reverse("availability_settings")) self.assertEqual(200, response.status_code) self.assertContains(response, "Availability Settings") def test_post_updates_settings(self): response = self.client.post( reverse("availability_settings"), { "enabled": "1", "show_in_chat": "1", "show_in_groups": "0", "inference_enabled": "1", "retention_days": "120", "fade_threshold_seconds": "300", }, ) self.assertEqual(200, response.status_code) row = ContactAvailabilitySettings.objects.get(user=self.user) self.assertTrue(row.enabled) self.assertTrue(row.show_in_chat) self.assertFalse(row.show_in_groups) self.assertTrue(row.inference_enabled) self.assertEqual(120, row.retention_days) self.assertEqual(300, row.fade_threshold_seconds)