diff --git a/src/registrar/models/domain.py b/src/registrar/models/domain.py
index 344ef5a00..12cb8b5db 100644
--- a/src/registrar/models/domain.py
+++ b/src/registrar/models/domain.py
@@ -256,7 +256,6 @@ class Domain(TimeStampedModel, DomainHelper):
hostList = []
for host in hosts:
hostList.append((host["name"], host["addrs"]))
-
return hostList
def _create_host(self, host, addrs):
diff --git a/src/registrar/templates/domain_detail.html b/src/registrar/templates/domain_detail.html
index 4ddbd673a..e220fe1aa 100644
--- a/src/registrar/templates/domain_detail.html
+++ b/src/registrar/templates/domain_detail.html
@@ -29,7 +29,7 @@
{% url 'domain-dns-nameservers' pk=domain.id as url %}
{% if domain.nameservers|length > 0 %}
- {% include "includes/summary_item.html" with title='DNS name servers' value=domain.nameservers list='true' edit_link=url %}
+ {% include "includes/summary_item.html" with title='DNS name servers' domains='true' value=domain.nameservers list='true' edit_link=url %}
{% else %}
DNS name servers
No DNS name servers have been added yet. Before your domain can be used we’ll need information about your domain name servers.
diff --git a/src/registrar/templates/includes/summary_item.html b/src/registrar/templates/includes/summary_item.html
index 6fcad0650..8a33bb1d5 100644
--- a/src/registrar/templates/includes/summary_item.html
+++ b/src/registrar/templates/includes/summary_item.html
@@ -43,7 +43,6 @@
{% else %}
{% include "includes/contact.html" with contact=value %}
{% endif %}
-
{% elif list %}
{% if value|length == 1 %}
{% if users %}
@@ -56,6 +55,17 @@
{% for item in value %}
{% if users %}
{{ item.user.email }}
+ {% elif domains %}
+
+ {{ item.0 }}
+ {% if item.1 %}
+ ({% spaceless %}
+ {% for addr in item.1 %}
+ {{addr}}{% if not forloop.last %}, {% endif %}
+ {% endfor %}
+ {% endspaceless %})
+ {% endif %}
+
{% else %}
{{ item }}
{% endif %}
diff --git a/src/registrar/tests/common.py b/src/registrar/tests/common.py
index 2b5b8254a..e66bc7723 100644
--- a/src/registrar/tests/common.py
+++ b/src/registrar/tests/common.py
@@ -738,6 +738,7 @@ class MockEppLib(TestCase):
"ns1.cats-are-superior3.com",
],
)
+
infoDomainNoHost = fakedEppObject(
"my-nameserver.gov",
cr_date=datetime.datetime(2023, 5, 25, 19, 45, 35),
@@ -793,7 +794,20 @@ class MockEppLib(TestCase):
infoDomainHasIP = fakedEppObject(
"nameserverwithip.gov",
cr_date=datetime.datetime(2023, 5, 25, 19, 45, 35),
- contacts=[],
+ contacts=[
+ common.DomainContact(
+ contact="securityContact",
+ type=PublicContact.ContactTypeChoices.SECURITY,
+ ),
+ common.DomainContact(
+ contact="technicalContact",
+ type=PublicContact.ContactTypeChoices.TECHNICAL,
+ ),
+ common.DomainContact(
+ contact="adminContact",
+ type=PublicContact.ContactTypeChoices.ADMINISTRATIVE,
+ ),
+ ],
hosts=[
"ns1.nameserverwithip.gov",
"ns2.nameserverwithip.gov",
@@ -802,6 +816,29 @@ class MockEppLib(TestCase):
addrs=["1.2.3.4", "2.3.4.5"],
)
+ justNameserver = fakedEppObject(
+ "justnameserver.com",
+ cr_date=datetime.datetime(2023, 5, 25, 19, 45, 35),
+ contacts=[
+ common.DomainContact(
+ contact="securityContact",
+ type=PublicContact.ContactTypeChoices.SECURITY,
+ ),
+ common.DomainContact(
+ contact="technicalContact",
+ type=PublicContact.ContactTypeChoices.TECHNICAL,
+ ),
+ common.DomainContact(
+ contact="adminContact",
+ type=PublicContact.ContactTypeChoices.ADMINISTRATIVE,
+ ),
+ ],
+ hosts=[
+ "ns1.justnameserver.com",
+ "ns2.justnameserver.com",
+ ],
+ )
+
infoDomainCheckHostIPCombo = fakedEppObject(
"nameserversubdomain.gov",
cr_date=datetime.datetime(2023, 5, 25, 19, 45, 35),
@@ -922,6 +959,7 @@ class MockEppLib(TestCase):
"threenameserversDomain.gov": (self.infoDomainThreeHosts, None),
"defaultsecurity.gov": (self.InfoDomainWithDefaultSecurityContact, None),
"defaulttechnical.gov": (self.InfoDomainWithDefaultTechnicalContact, None),
+ "justnameserver.com": (self.justNameserver, None),
}
# Retrieve the corresponding values from the dictionary
diff --git a/src/registrar/tests/test_views.py b/src/registrar/tests/test_views.py
index bff64eb33..0a472b885 100644
--- a/src/registrar/tests/test_views.py
+++ b/src/registrar/tests/test_views.py
@@ -1095,6 +1095,13 @@ class TestWithDomainPermissions(TestWithUser):
def setUp(self):
super().setUp()
self.domain, _ = Domain.objects.get_or_create(name="igorville.gov")
+ self.domain_with_ip, _ = Domain.objects.get_or_create(
+ name="nameserverwithip.gov"
+ )
+ self.domain_just_nameserver, _ = Domain.objects.get_or_create(
+ name="justnameserver.com"
+ )
+
self.domain_dsdata, _ = Domain.objects.get_or_create(name="dnssec-dsdata.gov")
self.domain_multdsdata, _ = Domain.objects.get_or_create(
name="dnssec-multdsdata.gov"
@@ -1104,9 +1111,11 @@ class TestWithDomainPermissions(TestWithUser):
self.domain_dnssec_none, _ = Domain.objects.get_or_create(
name="dnssec-none.gov"
)
+
self.domain_information, _ = DomainInformation.objects.get_or_create(
creator=self.user, domain=self.domain
)
+
DomainInformation.objects.get_or_create(
creator=self.user, domain=self.domain_dsdata
)
@@ -1116,9 +1125,17 @@ class TestWithDomainPermissions(TestWithUser):
DomainInformation.objects.get_or_create(
creator=self.user, domain=self.domain_dnssec_none
)
+ DomainInformation.objects.get_or_create(
+ creator=self.user, domain=self.domain_with_ip
+ )
+ DomainInformation.objects.get_or_create(
+ creator=self.user, domain=self.domain_just_nameserver
+ )
+
self.role, _ = UserDomainRole.objects.get_or_create(
user=self.user, domain=self.domain, role=UserDomainRole.Roles.MANAGER
)
+
UserDomainRole.objects.get_or_create(
user=self.user, domain=self.domain_dsdata, role=UserDomainRole.Roles.MANAGER
)
@@ -1132,6 +1149,16 @@ class TestWithDomainPermissions(TestWithUser):
domain=self.domain_dnssec_none,
role=UserDomainRole.Roles.MANAGER,
)
+ UserDomainRole.objects.get_or_create(
+ user=self.user,
+ domain=self.domain_with_ip,
+ role=UserDomainRole.Roles.MANAGER,
+ )
+ UserDomainRole.objects.get_or_create(
+ user=self.user,
+ domain=self.domain_just_nameserver,
+ role=UserDomainRole.Roles.MANAGER,
+ )
def tearDown(self):
try:
@@ -1215,6 +1242,37 @@ class TestDomainOverview(TestWithDomainPermissions, WebTest):
response = self.client.get(reverse("domain", kwargs={"pk": self.domain.id}))
self.assertEqual(response.status_code, 403)
+ def test_domain_see_just_nameserver(self):
+ home_page = self.app.get("/")
+ self.assertContains(home_page, "justnameserver.com")
+
+ # View nameserver on Domain Overview page
+ detail_page = self.app.get(
+ reverse("domain", kwargs={"pk": self.domain_just_nameserver.id})
+ )
+
+ self.assertContains(detail_page, "justnameserver.com")
+ self.assertContains(detail_page, "ns1.justnameserver.com")
+ self.assertContains(detail_page, "ns2.justnameserver.com")
+
+ def test_domain_see_nameserver_and_ip(self):
+ home_page = self.app.get("/")
+ self.assertContains(home_page, "nameserverwithip.gov")
+
+ # View nameserver on Domain Overview page
+ detail_page = self.app.get(
+ reverse("domain", kwargs={"pk": self.domain_with_ip.id})
+ )
+
+ self.assertContains(detail_page, "nameserverwithip.gov")
+
+ self.assertContains(detail_page, "ns1.nameserverwithip.gov")
+ self.assertContains(detail_page, "ns2.nameserverwithip.gov")
+ self.assertContains(detail_page, "ns3.nameserverwithip.gov")
+ # Splitting IP addresses bc there is odd whitespace and can't strip text
+ self.assertContains(detail_page, "(1.2.3.4,")
+ self.assertContains(detail_page, "2.3.4.5)")
+
class TestDomainManagers(TestDomainOverview):
def test_domain_managers(self):