Skip to content

Commit 62dcd17

Browse files
Merge remote-tracking branch 'origin/main' into content-repo
2 parents 1649c98 + e691124 commit 62dcd17

20 files changed

+190
-12
lines changed

api/src/api/userRouter.test.ts

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { getCurrentDate, parseDate } from "@shared/dateHelpers";
66
import { getCurrentBusiness } from "@shared/domain-logic/getCurrentBusiness";
77
import { modifyCurrentBusiness } from "@shared/domain-logic/modifyCurrentBusiness";
88
import { createEmptyFormationFormData, emptyAddressData } from "@shared/formationData";
9+
import { randomInt } from "@shared/intHelpers";
910
import { LicenseName } from "@shared/license";
1011
import {
1112
generateBusiness,
@@ -593,6 +594,51 @@ describe("userRouter", () => {
593594
});
594595

595596
describe("when businessPersona is 'STARTING'", () => {
597+
it("checks name availability using name from formationFormData", async () => {
598+
const userData = generateUserDataForBusiness(
599+
generateBusiness({
600+
profileData: generateStartingProfileData({
601+
businessName: "Business Name in Profile",
602+
}),
603+
formationData: generateFormationData({
604+
businessNameAvailability: generateBusinessNameAvailability({
605+
status: "AVAILABLE",
606+
lastUpdatedTimeStamp: sixtyOneMinutesAgo,
607+
}),
608+
formationFormData: generateFormationFormData({
609+
businessName: "Business Name in Formation Form Data",
610+
}),
611+
}),
612+
}),
613+
);
614+
stubUnifiedDataClient.get.mockResolvedValue(userData);
615+
616+
await request(app).get(`/users/123`).set("Authorization", "Bearer user-123-token");
617+
expect(stubTimeStampBusinessSearch.search).toHaveBeenCalledWith(
618+
"Business Name in Formation Form Data",
619+
);
620+
});
621+
622+
it("does not check name availability if formationFormData.businessName is an empty string", async () => {
623+
const userData = generateUserDataForBusiness(
624+
generateBusiness({
625+
formationData: generateFormationData({
626+
businessNameAvailability: generateBusinessNameAvailability({
627+
status: "AVAILABLE",
628+
lastUpdatedTimeStamp: sixtyOneMinutesAgo,
629+
}),
630+
formationFormData: generateFormationFormData({
631+
businessName: "",
632+
}),
633+
}),
634+
}),
635+
);
636+
stubUnifiedDataClient.get.mockResolvedValue(userData);
637+
638+
await request(app).get(`/users/123`).set("Authorization", "Bearer user-123-token");
639+
expect(stubTimeStampBusinessSearch.search).not.toHaveBeenCalled();
640+
});
641+
596642
it("does not update business name search if businessNameAvailability is undefined", async () => {
597643
const userData = generateUserDataForBusiness(
598644
generateBusiness({
@@ -733,13 +779,38 @@ describe("userRouter", () => {
733779

734780
await request(app).get(`/users/123`).set("Authorization", "Bearer user-123-token");
735781
expect(stubTimeStampBusinessSearch.search).toHaveBeenCalledWith(
736-
getCurrentBusiness(userData).profileData.businessName,
782+
getCurrentBusiness(userData).formationData.formationFormData.businessName,
737783
);
738784
expect(stubUpdateOperatingPhase).toHaveBeenCalledWith(userData);
739785
});
740786
});
741787

742788
describe("when businessPersona is 'FOREIGN' and Foreign type is Nexus", () => {
789+
it("does not seach when nexusDbaName is an empty string", async () => {
790+
const userData = generateUserDataForBusiness(
791+
generateBusiness({
792+
profileData: generateProfileData({
793+
businessPersona: "FOREIGN",
794+
foreignBusinessTypeIds: ["employeeOrContractorInNJ"],
795+
}),
796+
formationData: generateFormationData({
797+
completedFilingPayment: false,
798+
businessNameAvailability: generateBusinessNameAvailability({
799+
status: "UNAVAILABLE",
800+
}),
801+
dbaBusinessNameAvailability: generateBusinessNameAvailability({
802+
status: "AVAILABLE",
803+
lastUpdatedTimeStamp: sixtyOneMinutesAgo,
804+
}),
805+
}),
806+
}),
807+
);
808+
stubUnifiedDataClient.get.mockResolvedValue(userData);
809+
810+
await request(app).get(`/users/123`).set("Authorization", "Bearer user-123-token");
811+
expect(stubTimeStampBusinessSearch.search).not.toHaveBeenCalled();
812+
});
813+
743814
it("does not recheck business name availability if businessNameAvailability and dbaBusinessNameAvailability are undefined", async () => {
744815
const userData = generateUserDataForBusiness(
745816
generateBusiness({
@@ -904,6 +975,7 @@ describe("userRouter", () => {
904975
const userData = generateUserDataForBusiness(
905976
generateBusiness({
906977
profileData: generateProfileData({
978+
nexusDbaName: `some-dbaName-${randomInt()}`,
907979
businessPersona: "FOREIGN",
908980
foreignBusinessTypeIds: ["employeeOrContractorInNJ"],
909981
}),

api/src/api/userRouter.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,14 @@ export const userRouterFactory = (
418418
const needsDba = determineIfNexusDbaNameNeeded(currentBusiness);
419419
const nameToSearch = needsDba
420420
? currentBusiness.profileData.nexusDbaName
421-
: currentBusiness.profileData.businessName;
421+
: currentBusiness.formationData.formationFormData.businessName;
422+
423+
if (nameToSearch === "") {
424+
logger.LogInfo("Skipping name availability search - no name entered yet");
425+
return userData;
426+
}
427+
logger.LogInfo(`Executing name availability search for ${nameToSearch}`);
428+
422429
const response = await timeStampBusinessSearch.search(nameToSearch);
423430

424431
const nameAvailability: NameAvailability = {

api/src/libs/logWriter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ export const DummyLogWriter: LogWriterType = {
2929
export const ConsoleLogWriter: LogWriterType = {
3030
LogError: async (message: string, details?: AxiosError): Promise<void> => {
3131
try {
32-
console.error(`${message} - ${JSON.stringify(details?.toJSON())}`);
32+
const jsonDetails = typeof details?.toJSON === "function" ? details.toJSON() : details;
33+
console.error(`${message} - ${JSON.stringify(jsonDetails)}`);
3334
} catch (error) {
3435
console.error(`Error with LogError:${error}`);
3536
}

content/src/roadmaps/industries/auto-body-repair.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@
5454
"task": "community-right-to-know-survey",
5555
"required": true
5656
},
57+
{
58+
"step": 4,
59+
"weight": 62,
60+
"task": "env-permitting",
61+
"required": false
62+
},
5763
{
5864
"step": 4,
5965
"task": "resale-tax-certificate-operating",

content/src/roadmaps/industries/cannabis.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@
7878
"step": 4,
7979
"weight": 99,
8080
"task": "manage-business-vehicles"
81+
},
82+
{
83+
"step": 4,
84+
"weight": 36,
85+
"task": "env-permitting",
86+
"required": false
8187
}
8288
],
8389
"name": "Cannabis",
@@ -100,4 +106,4 @@
100106
"id": "cannabis",
101107
"description": "A business that manufactures, delivers, or sells cannabis",
102108
"webflowId": "656a1362657b7f011c19dc79"
103-
}
109+
}

content/src/roadmaps/industries/commercial-construction.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@
3737
"weight": 10,
3838
"task": "bank-account"
3939
},
40+
{
41+
"step": 4,
42+
"weight": 11,
43+
"task": "env-permitting",
44+
"required": false
45+
},
4046
{
4147
"step": 4,
4248
"weight": 99,

content/src/roadmaps/industries/cosmetology.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
"weight": 17,
6060
"task": "resale-tax-certificate-operating"
6161
},
62+
{
63+
"step": 4,
64+
"weight": 18,
65+
"task": "env-permitting",
66+
"required": false
67+
},
6268
{
6369
"step": 4,
6470
"weight": 99,

content/src/roadmaps/industries/daycare.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
"weight": 15,
4343
"task": "get-insurance"
4444
},
45+
{
46+
"step": 4,
47+
"weight": 16,
48+
"task": "env-permitting",
49+
"required": false
50+
},
4551
{
4652
"step": 4,
4753
"weight": 99,

content/src/roadmaps/industries/funeral.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@
5454
"licenseTask": "mortuary-practitioner",
5555
"required": false
5656
},
57+
{
58+
"step": 4,
59+
"weight": 26,
60+
"task": "env-permitting",
61+
"required": false
62+
},
5763
{
5864
"step": 4,
5965
"licenseTask": "rmw-generator-registration",

content/src/roadmaps/industries/health-club.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@
4747
"weight": 15,
4848
"licenseTask": "health-club-registration"
4949
},
50+
{
51+
"step": 4,
52+
"weight": 16,
53+
"task": "env-permitting",
54+
"required": false
55+
},
5056
{
5157
"step": 4,
5258
"weight": 99,

0 commit comments

Comments
 (0)