From 2cbe5d562c17dbec1e0f372162fe9a681429b0da Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 12:49:37 -0700 Subject: [PATCH 01/38] feat: adding inital load testing file --- sites/public/load-testing/initial-test.js | 193 ++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 sites/public/load-testing/initial-test.js diff --git a/sites/public/load-testing/initial-test.js b/sites/public/load-testing/initial-test.js new file mode 100644 index 00000000000..bbb29e31cbc --- /dev/null +++ b/sites/public/load-testing/initial-test.js @@ -0,0 +1,193 @@ +/* eslint-disable import/no-unresolved */ +import { browser } from "k6/browser" +import { sleep } from "k6" + +export const options = { + scenarios: { + default: { + executor: "ramping-vus", + startVUs: 0, + gracefulRampDown: "0s", + options: { + browser: { type: "chromium" }, + }, + stages: [ + { duration: "30s", target: 1 }, + { duration: "30s", target: 1 }, + { duration: "30s", target: 2 }, + { duration: "30s", target: 2 }, + { duration: "30s", target: 3 }, + { duration: "30s", target: 3 }, + ], + }, + }, +} + +const randomNumber = (min = 0, max = 5) => Math.random() * (max - min) + min + +const clickNext = async (page) => { + await page.getByRole("button", { name: "Next", exact: true }).click() + const text = await page.getByRole("heading", { name: "Blue Sky Apartments" }) + await text.waitFor({ + state: "visible", + }) + //TODO: get rid of sleep + await sleep(randomNumber()) +} + +export default async function () { + const page = await browser.newPage() + + try { + await page.goto("https://core-dev.bloomhousing.dev/") + + await page.getByRole("link", { name: "Listings", exact: true }).click() + + await page.getByRole("link", { name: "Blue Sky Apartments", exact: true }).click() + + await page.getByRole("link", { name: "Apply online", exact: true }).click() + + await page.locator("section").click() + + await page.locator("div:nth-of-type(2) > button:nth-of-type(1)").click() + + await clickNext(page) + + await page.getByRole("textbox", { name: "First or given name", exact: true }).fill("First Name") + + await page + .getByRole("textbox", { name: "Middle name (optional)", exact: true }) + .fill("Middle Name") + + await page.getByRole("textbox", { name: "Last or family name", exact: true }).fill("Last Name") + + await page.getByRole("textbox", { name: "Month", exact: true }).fill("1") + + await page.getByRole("textbox", { name: "Day", exact: true }).fill("1") + + await page.getByRole("textbox", { name: "Year", exact: true }).fill("2000") + + await page + .getByRole("textbox", { name: "Your email address", exact: true }) + .fill("example@exygy.com") + + await clickNext(page) + + await page.getByRole("textbox", { name: "Number", exact: true }).fill("(520) 123-4567") + + await page.locator("section").click() + + await page + .getByRole("combobox", { + name: "What type of number is this?", + exact: true, + }) + .selectOption("home") + + await page + .getByRole("textbox", { name: "Street address", exact: true }) + .fill("2325 eastborne st") + + await page.getByRole("textbox", { name: "Apt or unit #", exact: true }).fill("1/2") + + await page.getByRole("textbox", { name: "City name", exact: true }).fill("los angeles") + + await page.getByRole("combobox", { name: "State", exact: true }).selectOption("AL") + + await page.getByRole("combobox", { name: "State", exact: true }).selectOption("AZ") + + await page.getByRole("textbox", { name: "Zip code", exact: true }).fill("90025") + + await clickNext(page) + + await page.getByRole("checkbox", { name: "Letter", exact: true }).click() + + await page.getByRole("radio", { name: "No", exact: true }).check() + + await clickNext(page) + + await clickNext(page) + + const text = await page.getByRole("radio", { name: "have an alternate contact", exact: false }) + await text.waitFor({ + state: "visible", + }) + + await page.getByRole("radio", { name: "have an alternate contact", exact: false }).click() + + await clickNext(page) + + await page.getByRole("radio", { name: "I will live alone", exact: true }).click() + + await clickNext(page) + + await page.locator(".font-semibold").click() + + await clickNext(page) + + await page.locator("div:nth-of-type(4) .font-semibold").click() + + await clickNext(page) + + await page.locator("div:nth-of-type(2) > div .font-semibold").click() + + await page.locator(".seeds-card > div:nth-of-type(3)").click() + + await clickNext(page) + + await page.locator("div:nth-of-type(2) > div .font-semibold").click() + + await clickNext(page) + + await page.locator("div:nth-of-type(1) > div > div > .font-semibold").click() + + await page.locator(".seeds-card > div:nth-of-type(3)").click() + + await clickNext(page) + + await page + .getByRole("textbox", { + name: "What is your household total pre-tax income?", + exact: true, + }) + .fill("5000") + + await page.locator("div:nth-of-type(1) > div > div > .font-semibold").click() + + await page.locator(".seeds-card > div:nth-of-type(3)").click() + + await clickNext(page) + + await page.locator('[data-divider="inset"] div:nth-of-type(2) .font-semibold').click() + + await page + .locator("div:nth-of-type(2) > div > div:nth-of-type(1) > div > .font-semibold") + .click() + + await page + .getByRole("combobox", { + name: "Which best describes your ethnicity?", + exact: true, + }) + .selectOption("notHispanicLatino") + + await page.locator(".border-none div:nth-of-type(5) .font-semibold").click() + + await clickNext(page) + + await page.getByRole("button", { name: "Confirm", exact: true }).click() + + await page.locator(".font-semibold").click() + + await page.getByRole("button", { name: "Submit", exact: true }).click() + + await page + .getByRole("link", { + name: "View submitted application and print a copy.", + exact: true, + }) + .click() + } finally { + await page?.close() + } +} From a89ccbadddfe4faa567fb20c61e809e6c448aa7c Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 12:51:39 -0700 Subject: [PATCH 02/38] fix: upping load --- sites/public/load-testing/initial-test.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sites/public/load-testing/initial-test.js b/sites/public/load-testing/initial-test.js index bbb29e31cbc..bc22d0b8924 100644 --- a/sites/public/load-testing/initial-test.js +++ b/sites/public/load-testing/initial-test.js @@ -12,18 +12,18 @@ export const options = { browser: { type: "chromium" }, }, stages: [ - { duration: "30s", target: 1 }, - { duration: "30s", target: 1 }, - { duration: "30s", target: 2 }, - { duration: "30s", target: 2 }, - { duration: "30s", target: 3 }, - { duration: "30s", target: 3 }, + { duration: "30s", target: 10 }, + { duration: "30s", target: 10 }, + { duration: "30s", target: 100 }, + { duration: "30s", target: 100 }, + { duration: "30s", target: 1000 }, + { duration: "30s", target: 1000 }, ], }, }, } -const randomNumber = (min = 0, max = 5) => Math.random() * (max - min) + min +const randomNumber = (min = 2, max = 5) => Math.random() * (max - min) + min const clickNext = async (page) => { await page.getByRole("button", { name: "Next", exact: true }).click() From 6301b7d971f6502cd41cbb418e7de51365862862 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 13:45:19 -0700 Subject: [PATCH 03/38] feat: better randomness --- sites/public/load-testing/initial-test.js | 46 +++++++++++++---------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/sites/public/load-testing/initial-test.js b/sites/public/load-testing/initial-test.js index bc22d0b8924..371931f421b 100644 --- a/sites/public/load-testing/initial-test.js +++ b/sites/public/load-testing/initial-test.js @@ -12,27 +12,29 @@ export const options = { browser: { type: "chromium" }, }, stages: [ - { duration: "30s", target: 10 }, - { duration: "30s", target: 10 }, - { duration: "30s", target: 100 }, - { duration: "30s", target: 100 }, - { duration: "30s", target: 1000 }, - { duration: "30s", target: 1000 }, + { duration: "30s", target: 1 }, + { duration: "30s", target: 1 }, + { duration: "30s", target: 2 }, + { duration: "30s", target: 2 }, + { duration: "30s", target: 3 }, + { duration: "30s", target: 3 }, ], }, }, } -const randomNumber = (min = 2, max = 5) => Math.random() * (max - min) + min +const randomNumber = (min = 1, max = 5) => Math.floor(Math.random() * (max - min) + min) +const randomString = (stringLength = 5) => + (Math.random() + 1).toString(36).substring(2, stringLength + 2) -const clickNext = async (page) => { +const clickNext = async (page, waitFor = false) => { await page.getByRole("button", { name: "Next", exact: true }).click() - const text = await page.getByRole("heading", { name: "Blue Sky Apartments" }) + //TODO: get rid of sleep + await sleep(randomNumber()) + const text = await page.getByRole("button", { name: waitFor ? waitFor : "Next", exact: true }) await text.waitFor({ state: "visible", }) - //TODO: get rid of sleep - await sleep(randomNumber()) } export default async function () { @@ -53,23 +55,29 @@ export default async function () { await clickNext(page) - await page.getByRole("textbox", { name: "First or given name", exact: true }).fill("First Name") + await page + .getByRole("textbox", { name: "First or given name", exact: true }) + .fill(randomString()) await page .getByRole("textbox", { name: "Middle name (optional)", exact: true }) - .fill("Middle Name") + .fill(randomString()) - await page.getByRole("textbox", { name: "Last or family name", exact: true }).fill("Last Name") + await page + .getByRole("textbox", { name: "Last or family name", exact: true }) + .fill(randomString()) - await page.getByRole("textbox", { name: "Month", exact: true }).fill("1") + await page.getByRole("textbox", { name: "Month", exact: true }).fill(`${randomNumber(1, 12)}`) - await page.getByRole("textbox", { name: "Day", exact: true }).fill("1") + await page.getByRole("textbox", { name: "Day", exact: true }).fill(`${randomNumber(1, 27)}`) - await page.getByRole("textbox", { name: "Year", exact: true }).fill("2000") + await page + .getByRole("textbox", { name: "Year", exact: true }) + .fill(`${randomNumber(1980, 2005)}`) await page .getByRole("textbox", { name: "Your email address", exact: true }) - .fill("example@exygy.com") + .fill(`example+${randomString(10)}@exygy.com`) await clickNext(page) @@ -173,7 +181,7 @@ export default async function () { await page.locator(".border-none div:nth-of-type(5) .font-semibold").click() - await clickNext(page) + await clickNext(page, "Confirm") await page.getByRole("button", { name: "Confirm", exact: true }).click() From 7bcb523e08746b397c83d1926c5ea1dbee2df98c Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 13:55:16 -0700 Subject: [PATCH 04/38] feat: headless version --- sites/public/load-testing/headless.ts | 440 ++++++++++++++++++++++++++ 1 file changed, 440 insertions(+) create mode 100644 sites/public/load-testing/headless.ts diff --git a/sites/public/load-testing/headless.ts b/sites/public/load-testing/headless.ts new file mode 100644 index 00000000000..320984c6447 --- /dev/null +++ b/sites/public/load-testing/headless.ts @@ -0,0 +1,440 @@ +/* eslint-disable import/no-unresolved */ +// Generated by Grafana k6 Studio (1.12.0) on 2026-03-25T20:44:37.225Z + +import { group, sleep, check } from "k6" +import http from "k6/http" +import execution from "k6/execution" + +export const options = { + stages: [ + { target: 20, duration: "1m" }, + { target: 20, duration: "3m30s" }, + { target: 0, duration: "1m" }, + ], +} + +export default function () { + let params + let resp + let match + let regex + let url + const correlation_vars = {} + + group("Default group", function () { + params = { + headers: { + "Proxy-Connection": `keep-alive`, + Pragma: `no-cache`, + "Cache-Control": `no-cache`, + "Accept-Encoding": `gzip, deflate`, + }, + cookies: {}, + } + + url = http.url`http://clients2.google.com/time/1/current?cup2key=9:iN-j6LJZm5HsCwzDvnWZhmDYrlD47lPMqnqE-B_9xCA&cup2hreq=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + "sec-ch-ua-platform": `"macOS"`, + "upgrade-insecure-requests": `1`, + accept: `text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `navigate`, + "sec-fetch-user": `?1`, + "sec-fetch-dest": `document`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=0, i`, + }, + cookies: {}, + } + + url = http.url`https://core-dev.bloomhousing.dev/` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + authorization: `AidLogin 5487076626590519083:2647444296472586049`, + "content-type": `application/x-www-form-urlencoded`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `no-cors`, + "sec-fetch-dest": `empty`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=4, i`, + }, + cookies: {}, + } + + url = http.url`https://android.clients.google.com/c2dm/register3` + resp = http.request( + "POST", + url, + JSON.parse( + `{"app":"com.google.android.gms","device":"5487076626590519083","sender":"745476177629"}` + ), + params + ) + + check(resp, { "status equals 301": (r) => r.status === 301 }) + + params = { + headers: { + authorization: `AidLogin 5487076626590519083:2647444296472586049`, + "content-type": `application/x-www-form-urlencoded`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `no-cors`, + "sec-fetch-dest": `empty`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=4, i`, + }, + cookies: {}, + } + + url = http.url`https://android.clients.google.com/c2dm/register3` + resp = http.request( + "POST", + url, + JSON.parse( + `{"app":"com.chrome.macosx","X-subtype":"com.google.chrome.fcm.invalidations-245350905893","device":"5487076626590519083","scope":"GCM","X-scope":"GCM","gmsv":"146","appid":"eLj9Vyl_jok","sender":"245350905893","ttl":"1209600"}` + ), + params + ) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + authorization: `AidLogin 5487076626590519083:2647444296472586049`, + "content-type": `application/x-www-form-urlencoded`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `no-cors`, + "sec-fetch-dest": `empty`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=4, i`, + }, + cookies: {}, + } + + url = http.url`https://android.clients.google.com/c2dm/register3` + resp = http.request( + "POST", + url, + JSON.parse( + `{"app":"com.chrome.macosx","X-subtype":"com.google.chrome.fcm.invalidations-585406161706","device":"5487076626590519083","scope":"GCM","X-scope":"GCM","gmsv":"146","appid":"eZ-yHMSP7i0","sender":"585406161706","ttl":"1209600"}` + ), + params + ) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + Connection: `keep-alive`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + Accept: `image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8`, + "Sec-Fetch-Site": `cross-site`, + "Sec-Fetch-Mode": `no-cors`, + "Sec-Fetch-Dest": `image`, + "Sec-Fetch-Storage-Access": `active`, + Referer: `https://core-dev.bloomhousing.dev/`, + "Accept-Encoding": `gzip, deflate, br, zstd`, + "Accept-Language": `en-US,en;q=0.9`, + }, + cookies: {}, + } + + url = http.url`https://bloom-public-20260306001332301900000009.s3.us-west-2.amazonaws.com/0f20a5b5-32ef-494d-b2f9-664d067fc514` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + Connection: `keep-alive`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + Accept: `image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8`, + "Sec-Fetch-Site": `cross-site`, + "Sec-Fetch-Mode": `no-cors`, + "Sec-Fetch-Dest": `image`, + "Sec-Fetch-Storage-Access": `active`, + Referer: `https://core-dev.bloomhousing.dev/`, + "Accept-Encoding": `gzip, deflate, br, zstd`, + "Accept-Language": `en-US,en;q=0.9`, + }, + cookies: {}, + } + + url = http.url`https://bloom-public-20260306001332301900000009.s3.us-west-2.amazonaws.com/2169ecf9-dc74-44be-891c-98212fa00de8` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=1, i`, + }, + cookies: {}, + } + + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/496cd10a-4f3d-4add-9a79-c10ab7cd72b2` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=1, i`, + }, + cookies: {}, + } + + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + authorization: `AidLogin 5487076626590519083:2647444296472586049`, + "content-type": `application/x-www-form-urlencoded`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `no-cors`, + "sec-fetch-dest": `empty`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=4, i`, + }, + cookies: {}, + } + + url = http.url`https://android.clients.google.com/c2dm/register3` + resp = http.request( + "POST", + url, + JSON.parse( + `{"app":"com.google.android.gms","device":"5487076626590519083","sender":"745476177629"}` + ), + params + ) + + check(resp, { "status equals 429": (r) => r.status === 429 }) + + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "if-none-match": `"89n9pbkw5fd51"`, + priority: `u=1, i`, + }, + cookies: {}, + } + + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/496cd10a-4f3d-4add-9a79-c10ab7cd72b2` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 304": (r) => r.status === 304 }) + + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "if-none-match": `"nx0q0oqb909h8"`, + priority: `u=1, i`, + }, + cookies: {}, + } + + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 304": (r) => r.status === 304 }) + + params = { + headers: { + "x-goog-encode-response-if-executable": `base64`, + "x-goog-api-key": `AIzaSyDr2UxVnv_U85AbhhY8XSHSIavUW0DC-sY`, + "x-client-data": `CLPxygE=`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `no-cors`, + "sec-fetch-dest": `empty`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=4, i`, + }, + cookies: {}, + } + + url = http.url`https://content-autofill.googleapis.com/v1/pages/ChVDaHJvbWUvMTQ2LjAuNzY4MC4xNTQSQwkzMkXj9Vh8VRIFDWrz1SUSBQ1lRd3OEgUNCFxvNhIFDfVXpuQSBQ3NXi_2EgUN5gvj3hIFDefq_oshvuZlTKrXne8=?alt=proto` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + "x-goog-encode-response-if-executable": `base64`, + "x-goog-api-key": `AIzaSyDr2UxVnv_U85AbhhY8XSHSIavUW0DC-sY`, + "x-client-data": `CLPxygE=`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `no-cors`, + "sec-fetch-dest": `empty`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=4, i`, + }, + cookies: {}, + } + + url = http.url`https://content-autofill.googleapis.com/v1/pages/ChVDaHJvbWUvMTQ2LjAuNzY4MC4xNTQSQwknfuljSgaOxhIFDd0WfqYSBQ1C9SSPEgUNzg9LXBIFDe9aUVYSBQ2XklCPEgUNyNQ4RxIFDQASGuUhOSAAINr-UYg=?alt=proto` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + "x-goog-encode-response-if-executable": `base64`, + "x-goog-api-key": `AIzaSyDr2UxVnv_U85AbhhY8XSHSIavUW0DC-sY`, + "x-client-data": `CLPxygE=`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `no-cors`, + "sec-fetch-dest": `empty`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=4, i`, + }, + cookies: {}, + } + + url = http.url`https://content-autofill.googleapis.com/v1/pages/ChVDaHJvbWUvMTQ2LjAuNzY4MC4xNTQSGQmGBrjt4L6txBIFDYztGrMhWH2HdjiYOyc=?alt=proto` + resp = http.request("GET", url, null, params) + + check(resp, { "status equals 200": (r) => r.status === 200 }) + + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "content-type": `application/json`, + origin: `https://core-dev.bloomhousing.dev`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/review/summary`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=1, i`, + }, + cookies: {}, + } + + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/applications/verify` + resp = http.request( + "POST", + url, + `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + params + ) + + check(resp, { "status equals 201": (r) => r.status === 201 }) + + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "content-type": `application/json`, + origin: `https://core-dev.bloomhousing.dev`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/review/terms`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=1, i`, + }, + cookies: {}, + } + + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/applications/submit` + resp = http.request( + "POST", + url, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + params + ) + + check(resp, { "status equals 201": (r) => r.status === 201 }) + }) + sleep(1) +} From ad3d8c3ba7b381b94ec558109b9ac52800e3f23d Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 14:00:13 -0700 Subject: [PATCH 05/38] fix: testing --- sites/public/load-testing/headless.ts | 171 +------------------------- 1 file changed, 2 insertions(+), 169 deletions(-) diff --git a/sites/public/load-testing/headless.ts b/sites/public/load-testing/headless.ts index 320984c6447..862d0098c93 100644 --- a/sites/public/load-testing/headless.ts +++ b/sites/public/load-testing/headless.ts @@ -6,11 +6,8 @@ import http from "k6/http" import execution from "k6/execution" export const options = { - stages: [ - { target: 20, duration: "1m" }, - { target: 20, duration: "3m30s" }, - { target: 0, duration: "1m" }, - ], + vus: 10, + iterations: 100, } export default function () { @@ -22,21 +19,6 @@ export default function () { const correlation_vars = {} group("Default group", function () { - params = { - headers: { - "Proxy-Connection": `keep-alive`, - Pragma: `no-cache`, - "Cache-Control": `no-cache`, - "Accept-Encoding": `gzip, deflate`, - }, - cookies: {}, - } - - url = http.url`http://clients2.google.com/time/1/current?cup2key=9:iN-j6LJZm5HsCwzDvnWZhmDYrlD47lPMqnqE-B_9xCA&cup2hreq=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855` - resp = http.request("GET", url, null, params) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - params = { headers: { "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, @@ -60,155 +42,6 @@ export default function () { check(resp, { "status equals 200": (r) => r.status === 200 }) - params = { - headers: { - authorization: `AidLogin 5487076626590519083:2647444296472586049`, - "content-type": `application/x-www-form-urlencoded`, - "sec-fetch-site": `none`, - "sec-fetch-mode": `no-cors`, - "sec-fetch-dest": `empty`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, - priority: `u=4, i`, - }, - cookies: {}, - } - - url = http.url`https://android.clients.google.com/c2dm/register3` - resp = http.request( - "POST", - url, - JSON.parse( - `{"app":"com.google.android.gms","device":"5487076626590519083","sender":"745476177629"}` - ), - params - ) - - check(resp, { "status equals 301": (r) => r.status === 301 }) - - params = { - headers: { - authorization: `AidLogin 5487076626590519083:2647444296472586049`, - "content-type": `application/x-www-form-urlencoded`, - "sec-fetch-site": `none`, - "sec-fetch-mode": `no-cors`, - "sec-fetch-dest": `empty`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, - priority: `u=4, i`, - }, - cookies: {}, - } - - url = http.url`https://android.clients.google.com/c2dm/register3` - resp = http.request( - "POST", - url, - JSON.parse( - `{"app":"com.chrome.macosx","X-subtype":"com.google.chrome.fcm.invalidations-245350905893","device":"5487076626590519083","scope":"GCM","X-scope":"GCM","gmsv":"146","appid":"eLj9Vyl_jok","sender":"245350905893","ttl":"1209600"}` - ), - params - ) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - - params = { - headers: { - authorization: `AidLogin 5487076626590519083:2647444296472586049`, - "content-type": `application/x-www-form-urlencoded`, - "sec-fetch-site": `none`, - "sec-fetch-mode": `no-cors`, - "sec-fetch-dest": `empty`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, - priority: `u=4, i`, - }, - cookies: {}, - } - - url = http.url`https://android.clients.google.com/c2dm/register3` - resp = http.request( - "POST", - url, - JSON.parse( - `{"app":"com.chrome.macosx","X-subtype":"com.google.chrome.fcm.invalidations-585406161706","device":"5487076626590519083","scope":"GCM","X-scope":"GCM","gmsv":"146","appid":"eZ-yHMSP7i0","sender":"585406161706","ttl":"1209600"}` - ), - params - ) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - - params = { - headers: { - Connection: `keep-alive`, - "sec-ch-ua-platform": `"macOS"`, - "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, - "sec-ch-ua-mobile": `?0`, - Accept: `image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8`, - "Sec-Fetch-Site": `cross-site`, - "Sec-Fetch-Mode": `no-cors`, - "Sec-Fetch-Dest": `image`, - "Sec-Fetch-Storage-Access": `active`, - Referer: `https://core-dev.bloomhousing.dev/`, - "Accept-Encoding": `gzip, deflate, br, zstd`, - "Accept-Language": `en-US,en;q=0.9`, - }, - cookies: {}, - } - - url = http.url`https://bloom-public-20260306001332301900000009.s3.us-west-2.amazonaws.com/0f20a5b5-32ef-494d-b2f9-664d067fc514` - resp = http.request("GET", url, null, params) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - - params = { - headers: { - Connection: `keep-alive`, - "sec-ch-ua-platform": `"macOS"`, - "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, - "sec-ch-ua-mobile": `?0`, - Accept: `image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8`, - "Sec-Fetch-Site": `cross-site`, - "Sec-Fetch-Mode": `no-cors`, - "Sec-Fetch-Dest": `image`, - "Sec-Fetch-Storage-Access": `active`, - Referer: `https://core-dev.bloomhousing.dev/`, - "Accept-Encoding": `gzip, deflate, br, zstd`, - "Accept-Language": `en-US,en;q=0.9`, - }, - cookies: {}, - } - - url = http.url`https://bloom-public-20260306001332301900000009.s3.us-west-2.amazonaws.com/2169ecf9-dc74-44be-891c-98212fa00de8` - resp = http.request("GET", url, null, params) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - - params = { - headers: { - language: `en`, - "sec-ch-ua-platform": `"macOS"`, - "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, - "sec-ch-ua-mobile": `?0`, - jurisdictionname: `Bloomington`, - appurl: `https://core-dev.bloomhousing.dev`, - accept: `application/json, text/plain, */*`, - "sec-fetch-site": `same-origin`, - "sec-fetch-mode": `cors`, - "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, - priority: `u=1, i`, - }, - cookies: {}, - } - - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/496cd10a-4f3d-4add-9a79-c10ab7cd72b2` - resp = http.request("GET", url, null, params) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - params = { headers: { language: `en`, From 0e03574a70ca7a68ef89c7de226e2282087b7ca3 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 14:04:01 -0700 Subject: [PATCH 06/38] fix: bump --- sites/public/load-testing/headless.ts | 88 +-------------------------- 1 file changed, 1 insertion(+), 87 deletions(-) diff --git a/sites/public/load-testing/headless.ts b/sites/public/load-testing/headless.ts index 862d0098c93..65cef2bc956 100644 --- a/sites/public/load-testing/headless.ts +++ b/sites/public/load-testing/headless.ts @@ -7,7 +7,7 @@ import execution from "k6/execution" export const options = { vus: 10, - iterations: 100, + iterations: 1000, } export default function () { @@ -67,32 +67,6 @@ export default function () { check(resp, { "status equals 200": (r) => r.status === 200 }) - params = { - headers: { - authorization: `AidLogin 5487076626590519083:2647444296472586049`, - "content-type": `application/x-www-form-urlencoded`, - "sec-fetch-site": `none`, - "sec-fetch-mode": `no-cors`, - "sec-fetch-dest": `empty`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, - priority: `u=4, i`, - }, - cookies: {}, - } - - url = http.url`https://android.clients.google.com/c2dm/register3` - resp = http.request( - "POST", - url, - JSON.parse( - `{"app":"com.google.android.gms","device":"5487076626590519083","sender":"745476177629"}` - ), - params - ) - - check(resp, { "status equals 429": (r) => r.status === 429 }) - params = { headers: { language: `en`, @@ -145,66 +119,6 @@ export default function () { check(resp, { "status equals 304": (r) => r.status === 304 }) - params = { - headers: { - "x-goog-encode-response-if-executable": `base64`, - "x-goog-api-key": `AIzaSyDr2UxVnv_U85AbhhY8XSHSIavUW0DC-sY`, - "x-client-data": `CLPxygE=`, - "sec-fetch-site": `none`, - "sec-fetch-mode": `no-cors`, - "sec-fetch-dest": `empty`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, - priority: `u=4, i`, - }, - cookies: {}, - } - - url = http.url`https://content-autofill.googleapis.com/v1/pages/ChVDaHJvbWUvMTQ2LjAuNzY4MC4xNTQSQwkzMkXj9Vh8VRIFDWrz1SUSBQ1lRd3OEgUNCFxvNhIFDfVXpuQSBQ3NXi_2EgUN5gvj3hIFDefq_oshvuZlTKrXne8=?alt=proto` - resp = http.request("GET", url, null, params) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - - params = { - headers: { - "x-goog-encode-response-if-executable": `base64`, - "x-goog-api-key": `AIzaSyDr2UxVnv_U85AbhhY8XSHSIavUW0DC-sY`, - "x-client-data": `CLPxygE=`, - "sec-fetch-site": `none`, - "sec-fetch-mode": `no-cors`, - "sec-fetch-dest": `empty`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, - priority: `u=4, i`, - }, - cookies: {}, - } - - url = http.url`https://content-autofill.googleapis.com/v1/pages/ChVDaHJvbWUvMTQ2LjAuNzY4MC4xNTQSQwknfuljSgaOxhIFDd0WfqYSBQ1C9SSPEgUNzg9LXBIFDe9aUVYSBQ2XklCPEgUNyNQ4RxIFDQASGuUhOSAAINr-UYg=?alt=proto` - resp = http.request("GET", url, null, params) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - - params = { - headers: { - "x-goog-encode-response-if-executable": `base64`, - "x-goog-api-key": `AIzaSyDr2UxVnv_U85AbhhY8XSHSIavUW0DC-sY`, - "x-client-data": `CLPxygE=`, - "sec-fetch-site": `none`, - "sec-fetch-mode": `no-cors`, - "sec-fetch-dest": `empty`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, - priority: `u=4, i`, - }, - cookies: {}, - } - - url = http.url`https://content-autofill.googleapis.com/v1/pages/ChVDaHJvbWUvMTQ2LjAuNzY4MC4xNTQSGQmGBrjt4L6txBIFDYztGrMhWH2HdjiYOyc=?alt=proto` - resp = http.request("GET", url, null, params) - - check(resp, { "status equals 200": (r) => r.status === 200 }) - params = { headers: { language: `en`, From 4668a2a114607c47acd63c3c21668b0d431c114f Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 14:11:25 -0700 Subject: [PATCH 07/38] fix: lil more clean up --- sites/public/load-testing/headless.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sites/public/load-testing/headless.ts b/sites/public/load-testing/headless.ts index 65cef2bc956..343344663aa 100644 --- a/sites/public/load-testing/headless.ts +++ b/sites/public/load-testing/headless.ts @@ -1,9 +1,6 @@ /* eslint-disable import/no-unresolved */ -// Generated by Grafana k6 Studio (1.12.0) on 2026-03-25T20:44:37.225Z - import { group, sleep, check } from "k6" import http from "k6/http" -import execution from "k6/execution" export const options = { vus: 10, @@ -13,10 +10,7 @@ export const options = { export default function () { let params let resp - let match - let regex let url - const correlation_vars = {} group("Default group", function () { params = { From e91b6d953c860e420e764efcd5d33562b7352611 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 15:13:20 -0700 Subject: [PATCH 08/38] fix: update-o potat-o --- sites/public/load-testing/{headless.ts => headless.js} | 0 sites/public/load-testing/initial-test.js | 4 ++++ 2 files changed, 4 insertions(+) rename sites/public/load-testing/{headless.ts => headless.js} (100%) diff --git a/sites/public/load-testing/headless.ts b/sites/public/load-testing/headless.js similarity index 100% rename from sites/public/load-testing/headless.ts rename to sites/public/load-testing/headless.js diff --git a/sites/public/load-testing/initial-test.js b/sites/public/load-testing/initial-test.js index 371931f421b..de2de341e5c 100644 --- a/sites/public/load-testing/initial-test.js +++ b/sites/public/load-testing/initial-test.js @@ -19,6 +19,8 @@ export const options = { { duration: "30s", target: 3 }, { duration: "30s", target: 3 }, ], + // vus: 10, + // iterations: 100, }, }, } @@ -195,6 +197,8 @@ export default async function () { exact: true, }) .click() + + await sleep(1) } finally { await page?.close() } From 4a7eb5e9918501e0d59189d705ea5723e53131b8 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 16:09:12 -0700 Subject: [PATCH 09/38] fix: update-o potato 2 --- sites/public/load-testing/headless.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index 343344663aa..4db7fdad738 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -3,10 +3,13 @@ import { group, sleep, check } from "k6" import http from "k6/http" export const options = { - vus: 10, + vus: 50, iterations: 1000, } +const randomString = (stringLength = 5) => + (Math.random() + 1).toString(36).substring(2, stringLength + 2) + export default function () { let params let resp @@ -171,7 +174,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example+${randomString()}@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) From 0120da492acca4dd8027b52712e8eac1b73939a5 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 16:17:31 -0700 Subject: [PATCH 10/38] fix: testing some stuff --- sites/public/load-testing/headless.js | 2 +- sites/public/load-testing/initial-test.js | 24 +++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index 4db7fdad738..ca7ee784fa7 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -3,7 +3,7 @@ import { group, sleep, check } from "k6" import http from "k6/http" export const options = { - vus: 50, + vus: 100, iterations: 1000, } diff --git a/sites/public/load-testing/initial-test.js b/sites/public/load-testing/initial-test.js index de2de341e5c..a648d104943 100644 --- a/sites/public/load-testing/initial-test.js +++ b/sites/public/load-testing/initial-test.js @@ -6,21 +6,21 @@ export const options = { scenarios: { default: { executor: "ramping-vus", - startVUs: 0, - gracefulRampDown: "0s", + // startVUs: 0, + // gracefulRampDown: "0s", options: { browser: { type: "chromium" }, }, - stages: [ - { duration: "30s", target: 1 }, - { duration: "30s", target: 1 }, - { duration: "30s", target: 2 }, - { duration: "30s", target: 2 }, - { duration: "30s", target: 3 }, - { duration: "30s", target: 3 }, - ], - // vus: 10, - // iterations: 100, + // stages: [ + // { duration: "30s", target: 1 }, + // { duration: "30s", target: 1 }, + // { duration: "30s", target: 2 }, + // { duration: "30s", target: 2 }, + // { duration: "30s", target: 3 }, + // { duration: "30s", target: 3 }, + // ], + vus: 10, + iterations: 100, }, }, } From f30651e742e9c099045170554f08ca1aefbfa621 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 16:27:18 -0700 Subject: [PATCH 11/38] fix: ramping up further --- sites/public/load-testing/headless.js | 2 +- sites/public/load-testing/initial-test.js | 24 +++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index ca7ee784fa7..b08a6629014 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -4,7 +4,7 @@ import http from "k6/http" export const options = { vus: 100, - iterations: 1000, + iterations: 10000, } const randomString = (stringLength = 5) => diff --git a/sites/public/load-testing/initial-test.js b/sites/public/load-testing/initial-test.js index a648d104943..de2de341e5c 100644 --- a/sites/public/load-testing/initial-test.js +++ b/sites/public/load-testing/initial-test.js @@ -6,21 +6,21 @@ export const options = { scenarios: { default: { executor: "ramping-vus", - // startVUs: 0, - // gracefulRampDown: "0s", + startVUs: 0, + gracefulRampDown: "0s", options: { browser: { type: "chromium" }, }, - // stages: [ - // { duration: "30s", target: 1 }, - // { duration: "30s", target: 1 }, - // { duration: "30s", target: 2 }, - // { duration: "30s", target: 2 }, - // { duration: "30s", target: 3 }, - // { duration: "30s", target: 3 }, - // ], - vus: 10, - iterations: 100, + stages: [ + { duration: "30s", target: 1 }, + { duration: "30s", target: 1 }, + { duration: "30s", target: 2 }, + { duration: "30s", target: 2 }, + { duration: "30s", target: 3 }, + { duration: "30s", target: 3 }, + ], + // vus: 10, + // iterations: 100, }, }, } From de5345b7da69ea5edbf6788a6bf1e6cd23502d0d Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 16:40:12 -0700 Subject: [PATCH 12/38] fix: more --- sites/public/load-testing/headless.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index b08a6629014..dc4858ce318 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -3,8 +3,9 @@ import { group, sleep, check } from "k6" import http from "k6/http" export const options = { - vus: 100, + vus: 250, iterations: 10000, + maxDuration: "30m", } const randomString = (stringLength = 5) => @@ -174,7 +175,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example+${randomString()}@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"${randomString()}}","middleName":"${randomString()}}","lastName":"${randomString()}}","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example+${randomString()}@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) From e4b7b7889a07960f601ee692bb4c75db79cb4688 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 16:52:56 -0700 Subject: [PATCH 13/38] fix: dropping maxDur --- sites/public/load-testing/headless.js | 1 - 1 file changed, 1 deletion(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index dc4858ce318..7def12c4263 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -5,7 +5,6 @@ import http from "k6/http" export const options = { vus: 250, iterations: 10000, - maxDuration: "30m", } const randomString = (stringLength = 5) => From a22f9c3b82d3d9e3ce85dc2ed32ba7e1b28c70f4 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 17:33:04 -0700 Subject: [PATCH 14/38] fix: more updates 2 --- sites/public/load-testing/headless.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index 7def12c4263..63c238b9a39 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -3,7 +3,7 @@ import { group, sleep, check } from "k6" import http from "k6/http" export const options = { - vus: 250, + vus: 400, iterations: 10000, } @@ -88,7 +88,7 @@ export default function () { url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/496cd10a-4f3d-4add-9a79-c10ab7cd72b2` resp = http.request("GET", url, null, params) - check(resp, { "status equals 304": (r) => r.status === 304 }) + check(resp, { "status equals 200": (r) => r.status === 200 }) params = { headers: { @@ -105,7 +105,6 @@ export default function () { referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, - "if-none-match": `"nx0q0oqb909h8"`, priority: `u=1, i`, }, cookies: {}, @@ -114,7 +113,7 @@ export default function () { url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` resp = http.request("GET", url, null, params) - check(resp, { "status equals 304": (r) => r.status === 304 }) + check(resp, { "status equals 200": (r) => r.status === 200 }) params = { headers: { From d747bd8ce02238afcc3eb67654d8e509798c2a07 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Wed, 25 Mar 2026 17:47:45 -0700 Subject: [PATCH 15/38] fix: more vus --- sites/public/load-testing/headless.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index 63c238b9a39..ed31508405c 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -3,7 +3,7 @@ import { group, sleep, check } from "k6" import http from "k6/http" export const options = { - vus: 400, + vus: 1000, iterations: 10000, } From 40a63575f4af464a9256c07a4b6feeb5a63357c1 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 10:07:33 -0700 Subject: [PATCH 16/38] feat: adding user login --- sites/public/load-testing/headless.js | 325 ++++++++++++++++++++------ 1 file changed, 253 insertions(+), 72 deletions(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index ed31508405c..3f16894a88f 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -1,182 +1,363 @@ /* eslint-disable import/no-unresolved */ import { group, sleep, check } from "k6" import http from "k6/http" +import sql from "k6/x/sql" +import driver from "k6/x/sql/driver/postgres" + +/** + * Run this with the following command `k6 run headless.js --env DB_URL=""` + * adding vus increases the number of workers + * adding iterations increases the max number of runs the default funciton will perform + * in AWS environments we'll need to run this is the EC2 instance so that we can hit the db since its protected behind the VPC + */ export const options = { - vus: 1000, - iterations: 10000, + vus: 5, + iterations: 10, } const randomString = (stringLength = 5) => (Math.random() + 1).toString(36).substring(2, stringLength + 2) +// eslint-disable-next-line no-undef +const db = sql.open(driver, __ENV.DB_URL) + +export function teardown() { + db.close() +} + export default function () { let params let resp let url group("Default group", function () { + const email = `${randomString()}+${randomString()}@exygy.com` + const password = `Abcdef123456!${randomString()}` + + // Hit base URL params = { headers: { - "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, "sec-ch-ua-mobile": `?0`, "sec-ch-ua-platform": `"macOS"`, - "upgrade-insecure-requests": `1`, - accept: `text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7`, - "sec-fetch-site": `none`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-fetch-dest": `document`, "sec-fetch-mode": `navigate`, + "sec-fetch-site": `none`, "sec-fetch-user": `?1`, - "sec-fetch-dest": `document`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, + "upgrade-insecure-requests": `1`, + accept: `text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7`, priority: `u=0, i`, }, cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/` resp = http.request("GET", url, null, params) - check(resp, { "status equals 200": (r) => r.status === 200 }) + // create a user params = { headers: { + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "content-type": `application/json`, + "sec-ch-ua-mobile": `?0`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-fetch-dest": `empty`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, + accept: `application/json, text/plain, */*`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, language: `en`, + origin: `https://core-dev.bloomhousing.dev`, + priority: `u=1, i`, + referer: `https://core-dev.bloomhousing.dev/create-account`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/user/public` + resp = http.request( + "POST", + url, + `{"firstName":"${randomString()}","middleName":"","lastName":"${randomString()}","email":"${email}","password":"${password}","passwordConfirmation":"${password}","dob":"1955-01-11T08:00:00.000Z","language":"en","appUrl":"https://core-dev.bloomhousing.dev"}`, + params + ) + check(resp, { "status equals 201": (r) => r.status === 201 }) + + const userToConfirm = sql.query( + db, + `SELECT id, confirmation_token FROM user_accounts WHERE email = '${email}';` + ) + const confirmationToken = userToConfirm[0].confirmation_token + + // hit confirm user page + params = { + headers: { + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "sec-ch-ua-mobile": `?0`, "sec-ch-ua-platform": `"macOS"`, "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-fetch-dest": `document`, + "sec-fetch-mode": `navigate`, + "sec-fetch-site": `none`, + "sec-fetch-user": `?1`, + "upgrade-insecure-requests": `1`, + accept: `text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7`, + priority: `u=0, i`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/?token=${confirmationToken}` + resp = http.request("GET", url, null, params) + check(resp, { "status equals 200": (r) => r.status === 200 }) + + // confirm user + params = { + headers: { + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "content-type": `application/json`, "sec-ch-ua-mobile": `?0`, - jurisdictionname: `Bloomington`, - appurl: `https://core-dev.bloomhousing.dev`, - accept: `application/json, text/plain, */*`, - "sec-fetch-site": `same-origin`, - "sec-fetch-mode": `cors`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, + accept: `application/json, text/plain, */*`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, + language: `en`, + origin: `https://core-dev.bloomhousing.dev`, + priority: `u=1, i`, + referer: `https://core-dev.bloomhousing.dev/?token=${confirmationToken}`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/auth/confirm` + resp = http.request("PUT", url, `{"token":"${confirmationToken}"}`, params) + check(resp, { "status equals 201": (r) => r.status === 201 }) + + // sign in + params = { + headers: { "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, + "content-type": `application/json`, + "sec-ch-ua-mobile": `?0`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-fetch-dest": `empty`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, + accept: `application/json, text/plain, */*`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, + language: `en`, + origin: `https://core-dev.bloomhousing.dev`, priority: `u=1, i`, + referer: `https://core-dev.bloomhousing.dev/sign-in`, }, cookies: {}, } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/auth/login` + resp = http.request("POST", url, `{"email":"${email}","password":"${password}"}`, params) + check(resp, { "status equals 201": (r) => r.status === 201 }) - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` - resp = http.request("GET", url, null, params) + const vuJar = http.cookieJar() + const cookiesForURL = vuJar.cookiesForURL("https://core-dev.bloomhousing.dev") + check(null, { + "has cookie 'access-token'": () => cookiesForURL["access-token"].length > 0, + "has cookie 'refresh-token'": () => cookiesForURL["refresh-token"].length > 0, + "has cookie 'access-token-available'": () => + cookiesForURL["access-token-available"].length > 0, + }) + // get user profile + params = { + headers: { + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "sec-ch-ua-mobile": `?0`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-fetch-dest": `empty`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, + accept: `application/json, text/plain, */*`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, + language: `en`, + priority: `u=1, i`, + referer: `https://core-dev.bloomhousing.dev/sign-in`, + }, + cookies: { + ["access-token"]: cookiesForURL["access-token"], + ["refresh-token"]: cookiesForURL["refresh-token"], + ["access-token-available"]: cookiesForURL["access-token-available"], + }, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/user` + resp = http.request("GET", url, null, params) check(resp, { "status equals 200": (r) => r.status === 200 }) + // Get Jurisdiction params = { headers: { - language: `en`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "sec-ch-ua-mobile": `?0`, "sec-ch-ua-platform": `"macOS"`, "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, - "sec-ch-ua-mobile": `?0`, - jurisdictionname: `Bloomington`, - appurl: `https://core-dev.bloomhousing.dev`, - accept: `application/json, text/plain, */*`, - "sec-fetch-site": `same-origin`, - "sec-fetch-mode": `cors`, "sec-fetch-dest": `empty`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, + accept: `application/json, text/plain, */*`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, + language: `en`, + priority: `u=1, i`, referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + }, + cookies: { + ["access-token"]: cookiesForURL["access-token"], + ["refresh-token"]: cookiesForURL["refresh-token"], + ["access-token-available"]: cookiesForURL["access-token-available"], + }, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` + resp = http.request("GET", url, null, params) + check(resp, { "status equals 200": (r) => r.status === 200 }) + + // Look at a listing + params = { + headers: { "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, "if-none-match": `"89n9pbkw5fd51"`, + "sec-ch-ua-mobile": `?0`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-fetch-dest": `empty`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, + accept: `application/json, text/plain, */*`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, + language: `en`, priority: `u=1, i`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + }, + cookies: { + ["access-token"]: cookiesForURL["access-token"], + ["refresh-token"]: cookiesForURL["refresh-token"], + ["access-token-available"]: cookiesForURL["access-token-available"], }, - cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/496cd10a-4f3d-4add-9a79-c10ab7cd72b2` resp = http.request("GET", url, null, params) - check(resp, { "status equals 200": (r) => r.status === 200 }) + // jurisdiction fetch params = { headers: { - language: `en`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "sec-ch-ua-mobile": `?0`, "sec-ch-ua-platform": `"macOS"`, "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, - "sec-ch-ua-mobile": `?0`, - jurisdictionname: `Bloomington`, - appurl: `https://core-dev.bloomhousing.dev`, - accept: `application/json, text/plain, */*`, - "sec-fetch-site": `same-origin`, - "sec-fetch-mode": `cors`, "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, + accept: `application/json, text/plain, */*`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, + language: `en`, priority: `u=1, i`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + }, + cookies: { + ["access-token"]: cookiesForURL["access-token"], + ["refresh-token"]: cookiesForURL["refresh-token"], + ["access-token-available"]: cookiesForURL["access-token-available"], }, - cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` resp = http.request("GET", url, null, params) - check(resp, { "status equals 200": (r) => r.status === 200 }) + // verify application submission params = { headers: { - language: `en`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "content-type": `application/json`, + "sec-ch-ua-mobile": `?0`, "sec-ch-ua-platform": `"macOS"`, "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, - "sec-ch-ua-mobile": `?0`, - jurisdictionname: `Bloomington`, - appurl: `https://core-dev.bloomhousing.dev`, + "sec-fetch-dest": `empty`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, accept: `application/json, text/plain, */*`, - "content-type": `application/json`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, + language: `en`, origin: `https://core-dev.bloomhousing.dev`, - "sec-fetch-site": `same-origin`, - "sec-fetch-mode": `cors`, - "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/review/summary`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, priority: `u=1, i`, + referer: `https://core-dev.bloomhousing.dev/applications/review/summary`, + }, + cookies: { + ["access-token"]: cookiesForURL["access-token"], + ["refresh-token"]: cookiesForURL["refresh-token"], + ["access-token-available"]: cookiesForURL["access-token-available"], }, - cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/applications/verify` resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"${email}","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) - check(resp, { "status equals 201": (r) => r.status === 201 }) + // submit application params = { headers: { - language: `en`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "content-type": `application/json`, + "sec-ch-ua-mobile": `?0`, "sec-ch-ua-platform": `"macOS"`, "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, - "sec-ch-ua-mobile": `?0`, - jurisdictionname: `Bloomington`, - appurl: `https://core-dev.bloomhousing.dev`, + "sec-fetch-dest": `empty`, + "sec-fetch-mode": `cors`, + "sec-fetch-site": `same-origin`, accept: `application/json, text/plain, */*`, - "content-type": `application/json`, + appurl: `https://core-dev.bloomhousing.dev`, + jurisdictionname: `Bloomington`, + language: `en`, origin: `https://core-dev.bloomhousing.dev`, - "sec-fetch-site": `same-origin`, - "sec-fetch-mode": `cors`, - "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/review/terms`, - "accept-encoding": `gzip, deflate, br, zstd`, - "accept-language": `en-US,en;q=0.9`, priority: `u=1, i`, + referer: `https://core-dev.bloomhousing.dev/applications/review/terms`, + }, + cookies: { + ["access-token"]: cookiesForURL["access-token"], + ["refresh-token"]: cookiesForURL["refresh-token"], + ["access-token-available"]: cookiesForURL["access-token-available"], }, - cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/applications/submit` resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"${randomString()}}","middleName":"${randomString()}}","lastName":"${randomString()}}","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example+${randomString()}@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"${randomString()}}","middleName":"${randomString()}}","lastName":"${randomString()}}","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"${email}","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) - check(resp, { "status equals 201": (r) => r.status === 201 }) }) sleep(1) From 8aaf375b976cf003631988e6fe955516bddf8b19 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 10:17:40 -0700 Subject: [PATCH 17/38] fix: changing db instantiation --- sites/public/load-testing/headless.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index 3f16894a88f..e740971547a 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -19,8 +19,12 @@ export const options = { const randomString = (stringLength = 5) => (Math.random() + 1).toString(36).substring(2, stringLength + 2) -// eslint-disable-next-line no-undef -const db = sql.open(driver, __ENV.DB_URL) +let db + +export function setup() { + // eslint-disable-next-line no-undef + db = sql.open(driver, __ENV.DB_URL) +} export function teardown() { db.close() From b804bf37c494f945bd88ea6c0fbf50cdef05f5ca Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 10:33:41 -0700 Subject: [PATCH 18/38] fix: trying again --- sites/public/load-testing/headless.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/public/load-testing/headless.js b/sites/public/load-testing/headless.js index e740971547a..f4b8dd321b3 100644 --- a/sites/public/load-testing/headless.js +++ b/sites/public/load-testing/headless.js @@ -92,7 +92,7 @@ export default function () { ) check(resp, { "status equals 201": (r) => r.status === 201 }) - const userToConfirm = sql.query( + const userToConfirm = db.query( db, `SELECT id, confirmation_token FROM user_accounts WHERE email = '${email}';` ) From 1b8dd3e7b4fb6c36eb199dd6a18d734b36dab941 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 10:52:25 -0700 Subject: [PATCH 19/38] feat: old headless version with programs/preferences --- sites/public/load-testing/old-headless.js | 179 ++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 sites/public/load-testing/old-headless.js diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js new file mode 100644 index 00000000000..4e291ee4307 --- /dev/null +++ b/sites/public/load-testing/old-headless.js @@ -0,0 +1,179 @@ +/* eslint-disable import/no-unresolved */ +import { group, sleep, check } from "k6" +import http from "k6/http" + +export const options = { + vus: 100, + iterations: 1000, +} + +const randomString = (stringLength = 5) => + (Math.random() + 1).toString(36).substring(2, stringLength + 2) + +export default function () { + let params + let resp + let url + + group("Default group", function () { + // home page get + params = { + headers: { + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + "sec-ch-ua-platform": `"macOS"`, + "upgrade-insecure-requests": `1`, + accept: `text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7`, + "sec-fetch-site": `none`, + "sec-fetch-mode": `navigate`, + "sec-fetch-user": `?1`, + "sec-fetch-dest": `document`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=0, i`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/` + resp = http.request("GET", url, null, params) + check(resp, { "status equals 200": (r) => r.status === 200 }) + + // jurisdictions get + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=1, i`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` + resp = http.request("GET", url, null, params) + check(resp, { "status equals 200": (r) => r.status === 200 }) + + // listings get + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + "if-none-match": `"89n9pbkw5fd51"`, + priority: `u=1, i`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/496cd10a-4f3d-4add-9a79-c10ab7cd72b2` + resp = http.request("GET", url, null, params) + check(resp, { "status equals 200": (r) => r.status === 200 }) + + // jurisdiction get + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=1, i`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` + resp = http.request("GET", url, null, params) + check(resp, { "status equals 200": (r) => r.status === 200 }) + + // verify application + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "content-type": `application/json`, + origin: `https://core-dev.bloomhousing.dev`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/review/summary`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=1, i`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/applications/verify` + resp = http.request( + "POST", + url, + `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + params + ) + + check(resp, { "status equals 201": (r) => r.status === 201 }) + + // application submission + params = { + headers: { + language: `en`, + "sec-ch-ua-platform": `"macOS"`, + "sec-ch-ua": `"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"`, + "sec-ch-ua-mobile": `?0`, + jurisdictionname: `Bloomington`, + appurl: `https://core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "content-type": `application/json`, + origin: `https://core-dev.bloomhousing.dev`, + "sec-fetch-site": `same-origin`, + "sec-fetch-mode": `cors`, + "sec-fetch-dest": `empty`, + referer: `https://core-dev.bloomhousing.dev/applications/review/terms`, + "accept-encoding": `gzip, deflate, br, zstd`, + "accept-language": `en-US,en;q=0.9`, + priority: `u=1, i`, + }, + cookies: {}, + } + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/applications/submit` + resp = http.request( + "POST", + url, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"${randomString()}}","middleName":"${randomString()}}","lastName":"${randomString()}}","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example+${randomString()}@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + params + ) + + check(resp, { "status equals 201": (r) => r.status === 201 }) + }) + sleep(1) +} From 63e7299f2921c7f2e13d0855d1be20082d2e1dca Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 10:58:53 -0700 Subject: [PATCH 20/38] fix: small updates --- sites/public/load-testing/old-headless.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js index 4e291ee4307..22f3b39382d 100644 --- a/sites/public/load-testing/old-headless.js +++ b/sites/public/load-testing/old-headless.js @@ -36,7 +36,7 @@ export default function () { } url = http.url`https://core-dev.bloomhousing.dev/` resp = http.request("GET", url, null, params) - check(resp, { "status equals 200": (r) => r.status === 200 }) + check(resp, { "home page get": (r) => r.status === 200 }) // jurisdictions get params = { @@ -60,7 +60,7 @@ export default function () { } url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` resp = http.request("GET", url, null, params) - check(resp, { "status equals 200": (r) => r.status === 200 }) + check(resp, { "jurisdictions get 1": (r) => r.status === 200 }) // listings get params = { @@ -85,7 +85,7 @@ export default function () { } url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/496cd10a-4f3d-4add-9a79-c10ab7cd72b2` resp = http.request("GET", url, null, params) - check(resp, { "status equals 200": (r) => r.status === 200 }) + check(resp, { "listing get": (r) => r.status === 200 }) // jurisdiction get params = { @@ -109,7 +109,7 @@ export default function () { } url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` resp = http.request("GET", url, null, params) - check(resp, { "status equals 200": (r) => r.status === 200 }) + check(resp, { "jurisdiction get 2": (r) => r.status === 200 }) // verify application params = { @@ -141,7 +141,7 @@ export default function () { params ) - check(resp, { "status equals 201": (r) => r.status === 201 }) + check(resp, { "verify ": (r) => r.status === 201 }) // application submission params = { @@ -169,11 +169,11 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"${randomString()}}","middleName":"${randomString()}}","lastName":"${randomString()}}","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example+${randomString()}@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[],"programs":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) - check(resp, { "status equals 201": (r) => r.status === 201 }) + check(resp, { "submission ": (r) => r.status === 201 }) }) sleep(1) } From bc66fb8e5c2ba0e2b564556f09187b79e1b1660f Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 11:03:43 -0700 Subject: [PATCH 21/38] fix: after reseed --- sites/public/load-testing/old-headless.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js index 22f3b39382d..35a967b91d8 100644 --- a/sites/public/load-testing/old-headless.js +++ b/sites/public/load-testing/old-headless.js @@ -51,14 +51,14 @@ export default function () { "sec-fetch-site": `same-origin`, "sec-fetch-mode": `cors`, "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=53468ecc-7736-4d3b-a489-10e62e3cb8b7`, "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, priority: `u=1, i`, }, cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/42561f98-4e0e-46f4-a653-cf8097cd38c0` resp = http.request("GET", url, null, params) check(resp, { "jurisdictions get 1": (r) => r.status === 200 }) @@ -75,7 +75,7 @@ export default function () { "sec-fetch-site": `same-origin`, "sec-fetch-mode": `cors`, "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=53468ecc-7736-4d3b-a489-10e62e3cb8b7`, "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, "if-none-match": `"89n9pbkw5fd51"`, @@ -83,7 +83,7 @@ export default function () { }, cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/496cd10a-4f3d-4add-9a79-c10ab7cd72b2` + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/53468ecc-7736-4d3b-a489-10e62e3cb8b7` resp = http.request("GET", url, null, params) check(resp, { "listing get": (r) => r.status === 200 }) @@ -100,14 +100,14 @@ export default function () { "sec-fetch-site": `same-origin`, "sec-fetch-mode": `cors`, "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=496cd10a-4f3d-4add-9a79-c10ab7cd72b2`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=53468ecc-7736-4d3b-a489-10e62e3cb8b7`, "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, priority: `u=1, i`, }, cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/38f7eb8c-e29c-447e-9b01-eb1c78f5457c` + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/42561f98-4e0e-46f4-a653-cf8097cd38c0` resp = http.request("GET", url, null, params) check(resp, { "jurisdiction get 2": (r) => r.status === 200 }) @@ -137,7 +137,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) @@ -169,7 +169,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"496cd10a-4f3d-4add-9a79-c10ab7cd72b2"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) From ea8b02e0ed68b962bf06627de95c745b2b04c3a1 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 11:10:48 -0700 Subject: [PATCH 22/38] fix: id match --- sites/public/load-testing/old-headless.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js index 35a967b91d8..41d1d5c28b6 100644 --- a/sites/public/load-testing/old-headless.js +++ b/sites/public/load-testing/old-headless.js @@ -137,7 +137,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) @@ -169,7 +169,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"cb6dad5c-88af-4afe-af72-4eb4a0318ef7"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) From be817ffa47d2763b5a2a5d764e0b91cfb9483c9e Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 11:23:19 -0700 Subject: [PATCH 23/38] fix: try again --- sites/public/load-testing/old-headless.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js index 41d1d5c28b6..1efae4f74cf 100644 --- a/sites/public/load-testing/old-headless.js +++ b/sites/public/load-testing/old-headless.js @@ -137,7 +137,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) @@ -169,11 +169,9 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":3,"submissionType":"electronical","language":"en","acceptedTerms":false,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"home","noPhone":false,"applicantAddress":{"street":"Eastborne Avenue","street2":"1/2","city":"Los Angeles","state":"AZ","zipCode":"90024","county":"","longitude":-118.426842,"latitude":34.056933},"workInRegion":"no","phoneNumber":"(520) 123-4567","firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","birthMonth":"1","birthDay":"1","birthYear":"2000","emailAddress":"example@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["letter"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":{"type":"noContact","firstName":"","lastName":"","agency":"","phoneNumber":"","emailAddress":null,"address":{"street":"","street2":"","city":"","state":"","zipCode":""}},"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"incomeVouchers":true,"income":"5000.00","incomePeriod":"perMonth","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"notHispanicLatino","gender":"","sexualOrientation":"","howDidYouHear":["friend"],"race":["asian","asian-asianIndian"],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listing":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) - check(resp, { "submission ": (r) => r.status === 201 }) }) - sleep(1) } From 81eb9c1521751174e63a7a0f581681c1fd966b35 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 11:43:11 -0700 Subject: [PATCH 24/38] fix: msqv2 test --- sites/public/load-testing/old-headless.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js index 1efae4f74cf..5f7b2842145 100644 --- a/sites/public/load-testing/old-headless.js +++ b/sites/public/load-testing/old-headless.js @@ -137,7 +137,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[],"programs":[],"applicationSelections":[{"multiselectQuestion":{"id":"45583597-37a0-4c5d-bfcf-9a82a28ba337"},"hasOptedOut":false,"selections":[{"multiselectOption":{"id":"35260537-fd7e-41cb-8f2b-cc03d3e1369d"}}]},{"multiselectQuestion":{"id":"3497f10d-404d-48b6-8881-36b1188fe24d"},"hasOptedOut":false,"selections":[{"multiselectOption":{"id":"684c9637-2c73-4a32-a417-5022f0d78f33"}}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) @@ -169,7 +169,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[],"programs":[],"applicationSelections":[{"multiselectQuestion":{"id":"45583597-37a0-4c5d-bfcf-9a82a28ba337"},"hasOptedOut":false,"selections":[{"multiselectOption":{"id":"35260537-fd7e-41cb-8f2b-cc03d3e1369d"}}]},{"multiselectQuestion":{"id":"3497f10d-404d-48b6-8881-36b1188fe24d"},"hasOptedOut":false,"selections":[{"multiselectOption":{"id":"684c9637-2c73-4a32-a417-5022f0d78f33"}}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) check(resp, { "submission ": (r) => r.status === 201 }) From 6f1c69710a0b7f82faf2d2e9dd45ba7131c669b3 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 7 Apr 2026 11:53:26 -0700 Subject: [PATCH 25/38] feat: stress test --- sites/public/load-testing/old-headless.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js index 5f7b2842145..c90753c6aa1 100644 --- a/sites/public/load-testing/old-headless.js +++ b/sites/public/load-testing/old-headless.js @@ -3,8 +3,8 @@ import { group, sleep, check } from "k6" import http from "k6/http" export const options = { - vus: 100, - iterations: 1000, + vus: 500, + iterations: 10000, } const randomString = (stringLength = 5) => From 29d28864882c428f161778199d5bc2753a90f303 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Sun, 31 May 2026 17:12:31 -0700 Subject: [PATCH 26/38] fix: reversion to old mfa --- sites/public/load-testing/old-headless.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js index c90753c6aa1..3c0ddef492d 100644 --- a/sites/public/load-testing/old-headless.js +++ b/sites/public/load-testing/old-headless.js @@ -137,7 +137,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[],"programs":[],"applicationSelections":[{"multiselectQuestion":{"id":"45583597-37a0-4c5d-bfcf-9a82a28ba337"},"hasOptedOut":false,"selections":[{"multiselectOption":{"id":"35260537-fd7e-41cb-8f2b-cc03d3e1369d"}}]},{"multiselectQuestion":{"id":"3497f10d-404d-48b6-8881-36b1188fe24d"},"hasOptedOut":false,"selections":[{"multiselectOption":{"id":"684c9637-2c73-4a32-a417-5022f0d78f33"}}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) @@ -169,7 +169,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[],"programs":[],"applicationSelections":[{"multiselectQuestion":{"id":"45583597-37a0-4c5d-bfcf-9a82a28ba337"},"hasOptedOut":false,"selections":[{"multiselectOption":{"id":"35260537-fd7e-41cb-8f2b-cc03d3e1369d"}}]},{"multiselectQuestion":{"id":"3497f10d-404d-48b6-8881-36b1188fe24d"},"hasOptedOut":false,"selections":[{"multiselectOption":{"id":"684c9637-2c73-4a32-a417-5022f0d78f33"}}]}],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) check(resp, { "submission ": (r) => r.status === 201 }) From 807408d48a3fb3658e7d9213d7de922e93891409 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 01:03:07 -0700 Subject: [PATCH 27/38] feat: adding partner load test for notifs --- api/prisma/seed-helpers/user-factory.ts | 8 ++ api/prisma/seed-staging.ts | 19 ++++ api/prisma/seed-staging/seed-bloomington.ts | 73 +++++++++++++++ api/src/services/listing.service.ts | 1 + .../load-testing/headless-listing-save.js | 88 +++++++++++++++++++ sites/public/load-testing/old-headless.js | 16 ++-- 6 files changed, 197 insertions(+), 8 deletions(-) create mode 100644 sites/partners/load-testing/headless-listing-save.js diff --git a/api/prisma/seed-helpers/user-factory.ts b/api/prisma/seed-helpers/user-factory.ts index 21fd8a44f9d..0ee8df8d2bd 100644 --- a/api/prisma/seed-helpers/user-factory.ts +++ b/api/prisma/seed-helpers/user-factory.ts @@ -26,6 +26,7 @@ export const userFactory = async (optionalParams?: { isApproved?: boolean; agencyId?: string; notificationPreferences?: UserNotificationPreferences; + userPreferences?: boolean; }): Promise => ({ agreedToTermsOfService: optionalParams?.acceptedTerms || false, confirmedAt: optionalParams?.confirmedAt || null, @@ -109,4 +110,11 @@ export const userFactory = async (optionalParams?: { }, } : undefined, + userPreferences: optionalParams?.userPreferences + ? { + create: { + sendEmailNotifications: true, + }, + } + : undefined, }); diff --git a/api/prisma/seed-staging.ts b/api/prisma/seed-staging.ts index d7c58407258..16a3cc687a4 100644 --- a/api/prisma/seed-staging.ts +++ b/api/prisma/seed-staging.ts @@ -121,6 +121,25 @@ export const stagingSeed = async ( password: 'abcdef', }), }); + + for (let i = 0; i < 100000; i++) { + prismaClient.userAccounts.create({ + data: await userFactory({ + email: `yazeed.loonat+${i}@exygy.com`, + confirmedAt: new Date(), + jurisdictionIds: allJurisdictions, + acceptedTerms: true, + password: 'abcdef', + notificationPreferences: { + regions: ['test'], + }, + userPreferences: true, + }), + }); + if (i % 1000 === 0) { + console.log(new Date(), 'I have created', i, ' users so far'); + } + } // create a support admin await prismaClient.userAccounts.create({ data: await userFactory({ diff --git a/api/prisma/seed-staging/seed-bloomington.ts b/api/prisma/seed-staging/seed-bloomington.ts index 5f2bad205dd..4387e3b450b 100644 --- a/api/prisma/seed-staging/seed-bloomington.ts +++ b/api/prisma/seed-staging/seed-bloomington.ts @@ -1,6 +1,7 @@ import { ApplicationSubmissionTypeEnum, LanguagesEnum, + ListingsStatusEnum, MultiselectQuestionsApplicationSectionEnum, MultiselectQuestionsStatusEnum, PrismaClient, @@ -546,6 +547,78 @@ export const createBloomingtonJurisdiction = async ( userAccounts: [{ id: partnerUser.id }], enableListingFeaturesAndUtilities: true, }, + { + listing: { + ...elmVillage, + name: 'test notification listing', + status: ListingsStatusEnum.active, + region: 'Eastside', + }, + numberOfUnits: 0, + applications: [ + await applicationFactory({ + enableV2MSQ: msqV2, + multiselectQuestions: [workInCityQuestion, cityEmployeeQuestion], + }), + await applicationFactory({ + enableV2MSQ: msqV2, + multiselectQuestions: [ + cityEmployeeQuestion, + workInCityQuestion, + veteransProgramQuestion, + ], + }), + await applicationFactory({ + enableV2MSQ: msqV2, + multiselectQuestions: [workInCityQuestion, cityEmployeeQuestion], + }), + ...(await applicationFactoryMany(2, { + enableV2MSQ: msqV2, + multiselectQuestions: [workInCityQuestion], + })), + await applicationFactory(), + ], + multiselectQuestions: [ + workInCityQuestion, + cityEmployeeQuestion, + veteransProgramQuestion, + ], + units: [ + { + ...defaultUnit, + numBedrooms: 0, + unitTypes: { connect: { id: unitTypes[0].id } }, + }, + { + ...defaultUnit, + numBedrooms: 0, + unitTypes: { connect: { id: unitTypes[5].id } }, + }, + { ...defaultUnit }, + { + ...defaultUnit, + numBedrooms: 2, + sqFeet: '1050.00', + unitTypes: { connect: { id: unitTypes[2].id } }, + }, + { + ...defaultUnit, + numBathrooms: 2, + numBedrooms: 3, + sqFeet: '1250.00', + unitTypes: { connect: { id: unitTypes[3].id } }, + }, + { + ...defaultUnit, + numBathrooms: 3, + numBedrooms: 4, + sqFeet: '1750.00', + unitTypes: { connect: { id: unitTypes[4].id } }, + }, + ], + userAccounts: [{ id: partnerUser.id }], + enableListingFeaturesAndUtilities: true, + }, ]; await seedListings(prismaClient, jurisdiction.id, listingsToCreate, amiChart); diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 56048fdce03..9288f5a6131 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -3000,6 +3000,7 @@ export class ListingService implements OnModuleInit { }, ], }, + take: 10, }); if (!emailUsers.length) { diff --git a/sites/partners/load-testing/headless-listing-save.js b/sites/partners/load-testing/headless-listing-save.js new file mode 100644 index 00000000000..08219371b8f --- /dev/null +++ b/sites/partners/load-testing/headless-listing-save.js @@ -0,0 +1,88 @@ +/* eslint-disable import/no-unresolved */ +import { group, check } from "k6" +import http from "k6/http" + +export const options = { + vus: 1, + iterations: 1, +} + +export default function () { + let params + let resp + let url + let userCookies + + group("Default group", function () { + params = { + headers: { + language: `en`, + appurl: `https://partners.core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "content-type": `application/json`, + referer: `https://partners.core-dev.bloomhousing.dev/sign-in`, + }, + cookies: {}, + } + + url = http.url`https://partners.core-dev.bloomhousing.dev/api/adapter/auth/login` + resp = http.request("POST", url, `{"email":"admin@example.com","password":"abcdef"}`, params) + + check(resp, { "sign in": (r) => r.status === 201 }) + userCookies = resp.cookies + // eslint-disable-next-line no-undef + console.log("33:", userCookies) + + params = { + headers: { + language: `en`, + appurl: `https://partners.core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + referer: `https://partners.core-dev.bloomhousing.dev/sign-in`, + }, + cookies: {}, + } + + url = http.url`https://partners.core-dev.bloomhousing.dev/api/adapter/user` + resp = http.request("GET", url, null, params) + + check(resp, { "get user": (r) => r.status === 200 }) + + params = { + headers: { + language: `en`, + appurl: `https://partners.core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + "content-type": `application/json`, + referer: `https://partners.core-dev.bloomhousing.dev/listings/5fdfd253-d270-48e4-92ee-793ec5beda78/edit`, + }, + cookies: {}, + } + + url = http.url`https://partners.core-dev.bloomhousing.dev/api/adapter/listings/5fdfd253-d270-48e4-92ee-793ec5beda78` + resp = http.request( + "PUT", + url, + `{"id":"5fdfd253-d270-48e4-92ee-793ec5beda78","assets":[],"createdAt":"2026-06-01T06:15:26.738Z","updatedAt":"2026-06-01T06:50:23.921Z","additionalApplicationSubmissionNotes":null,"digitalApplication":true,"commonDigitalApplication":true,"paperApplication":false,"referralOpportunity":false,"accessibility":null,"amenities":null,"buildingTotalUnits":0,"developer":"Cielo Housing","listingFileNumber":null,"householdSizeMax":0,"householdSizeMin":0,"neighborhood":"North End","region":"Eastside","configurableRegion":null,"petPolicy":null,"allowsDogs":null,"allowsCats":null,"smokingPolicy":null,"unitsAvailable":1,"unitAmenities":null,"servicesOffered":null,"yearBuilt":1900,"applicationDueDate":"2026-07-01T06:15:00.000Z","applicationOpenDate":"2026-05-31T06:15:25.104Z","applicationFee":"60","creditScreeningFee":null,"applicationOrganization":null,"applicationPickUpAddressOfficeHours":null,"applicationPickUpAddressType":null,"applicationDropOffAddressOfficeHours":null,"applicationDropOffAddressType":null,"applicationMailingAddressType":null,"buildingSelectionCriteria":null,"marketingFlyer":null,"accessibleMarketingFlyer":null,"cocInfo":null,"costsNotIncluded":null,"creditHistory":null,"criminalBackground":null,"depositMin":"0","depositMax":"50","depositType":null,"depositHelperText":"Deposit will not exceed one month's rent","disableUnitsAccordion":false,"hasHudEbllClearance":null,"leasingAgentEmail":"joe@smithrealty.com","leasingAgentName":"Joe Smith","leasingAgentOfficeHours":"9:00am - 5:00pm, Monday-Friday","leasingAgentPhone":"(773) 580-5897","leasingAgentTitle":"Senior Leasing Agent","managementWebsite":null,"name":"Blue Sky Apartments","parkingFee":null,"parkType":null,"postmarkedApplicationsReceivedByDate":"2025-06-06T23:00:00.000Z","programRules":null,"rentalAssistance":"Housing Choice Vouchers, Section 8 and other valid rental assistance programs will be considered for this property. ","rentalHistory":null,"requiredDocuments":null,"requiredDocumentsList":null,"specialNotes":null,"waitlistCurrentSize":null,"waitlistMaxSize":null,"whatToExpect":"

Applicants will be contacted by the property agent in rank order until vacancies are filled. All of the information that you have provided will be verified and your eligibility confirmed. Your application will be removed from the waitlist if you have made any fraudulent statements. If we cannot verify a housing preference that you have claimed, you will not receive the preference but will not be otherwise penalized. Should your application be chosen, be prepared to fill out a more detailed application and provide required supporting documents.

","whatToExpectAdditionalText":null,"status":"active","reviewOrderType":"firstComeFirstServe","displayWaitlistSize":false,"reservedCommunityDescription":"Seniors over 55 are eligible for this property ","reservedCommunityMinAge":null,"resultLink":null,"isWaitlistOpen":false,"waitlistOpenSpots":null,"customMapPin":false,"contentUpdatedAt":"2026-06-01T06:38:31.303Z","publishedAt":"2026-06-01T06:19:08.419Z","scheduledPublishAt":null,"closedAt":null,"afsLastRunAt":"1970-01-01T00:00:00.000Z","lotteryLastPublishedAt":null,"lotteryLastRunAt":null,"lotteryStatus":null,"lastApplicationUpdateAt":"2026-06-01T06:50:23.919Z","listingMultiselectQuestions":[{"multiselectQuestions":{"createdAt":"2026-06-01T06:15:26.415Z","updatedAt":"2026-06-01T06:15:26.415Z","id":"fe910943-d01f-4900-bd3e-b62782d61740","applicationSection":"preferences","description":"Employees of the local city.","isExclusive":false,"hideFromListing":false,"links":[],"multiselectOptions":[],"name":"City Employees","options":[{"collectAddress":false,"ordinal":0,"text":"At least one member of my household is a city employee"}],"optOutText":null,"status":"draft","subText":"sub text for City Employees","text":"City Employees"},"ordinal":1,"id":"fe910943-d01f-4900-bd3e-b62782d61740","listingId":"5fdfd253-d270-48e4-92ee-793ec5beda78"},{"multiselectQuestions":{"createdAt":"2026-06-01T06:15:26.429Z","updatedAt":"2026-06-01T06:15:26.429Z","id":"6cef9823-d856-404e-83e1-d77c0f0caf3b","applicationSection":"programs","description":"Have you or anyone in your household served in the US military?","isExclusive":false,"hideFromListing":false,"links":[],"multiselectOptions":[],"name":"Veterans","options":[{"exclusive":true,"ordinal":0,"text":"Yes"},{"exclusive":true,"ordinal":1,"text":"No"}],"optOutText":null,"status":"draft","subText":"sub text for Veterans","text":"Veterans"},"ordinal":1,"id":"6cef9823-d856-404e-83e1-d77c0f0caf3b","listingId":"5fdfd253-d270-48e4-92ee-793ec5beda78"}],"applicationMethods":[{"createdAt":"2026-06-01T06:38:31.306Z","updatedAt":"2026-06-01T06:38:31.306Z","id":"2af7095c-8da4-4d51-ab65-2dc41dd3a759","type":"Internal","label":null,"externalReference":null,"acceptsPostmarkedApplications":null,"phoneNumber":null,"paperApplications":[]}],"listingEvents":[],"listingsBuildingAddress":{"id":"c245a4ca-389f-42bb-91bb-e674fe745626","placeName":"Yellowstone National Park","city":"Yellowstone National Park","county":"Teton","state":"WY","street":"3200 Old Faithful Inn Rd","zipCode":"82190","latitude":44.45995,"longitude":-110.831197},"listingsApplicationPickUpAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationDropOffAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationMailingAddress":{"placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsLeasingAgentAddress":{"id":"df45caa6-6bfd-4c4f-8b86-fe36b7e7148b","placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsMarketingFlyerFile":null,"listingsAccessibleMarketingFlyerFile":null,"jurisdictions":{"id":"2bc7a6c3-13b2-4a7e-9a98-2f47d9686ba5","name":"Bloomington"},"listingsResult":null,"reservedCommunityTypes":null,"listingImages":[{"ordinal":0,"assets":{"createdAt":"2026-06-01T06:15:26.741Z","updatedAt":"2026-06-01T06:15:26.741Z","id":"8fdc510b-6c0d-43b1-8374-e229d004c00a","fileId":"https://res.cloudinary.com/exygy/image/upload/w_1302,c_limit,q_65/dev/trayan-xIOYJSVEZ8c-unsplash_f1axsg.jpg","label":"cloudinaryBuilding"},"description":""}],"listingFeatures":{"accessibleHeightToilet":false,"accessibleParking":false,"acInUnit":false,"barrierFreeBathroom":false,"barrierFreeEntrance":false,"barrierFreePropertyEntrance":false,"barrierFreeUnitEntrance":true,"bathGrabBarsOrReinforcements":false,"bathroomCounterLowered":false,"brailleSignageInBuilding":false,"carbonMonoxideDetectorWithStrobe":false,"carpetInUnit":false,"elevator":true,"extraAudibleCarbonMonoxideDetector":false,"extraAudibleSmokeDetector":false,"fireSuppressionSprinklerSystem":false,"frontControlsDishwasher":false,"frontControlsStoveCookTop":false,"grabBars":true,"hardFlooringInUnit":false,"hearing":true,"hearingAndVision":false,"heatingInUnit":true,"inUnitWasherDryer":false,"kitchenCounterLowered":false,"laundryInBuilding":true,"leverHandlesOnDoors":false,"leverHandlesOnFaucets":false,"loweredCabinets":false,"loweredLightSwitch":false,"mobility":true,"noEntryStairs":false,"nonDigitalKitchenAppliances":false,"noStairsToParkingSpots":false,"noStairsWithinUnit":false,"parkingOnSite":true,"refrigeratorWithBottomDoorFreezer":false,"rollInShower":true,"serviceAnimalsAllowed":false,"smokeDetectorWithStrobe":false,"streetLevelEntrance":false,"toiletGrabBarsOrReinforcements":false,"ttyAmplifiedPhone":false,"turningCircleInBathrooms":false,"visual":false,"walkInShower":false,"wheelchairRamp":false,"wideDoorways":true},"listingUtilities":{"water":true,"gas":true,"trash":false,"sewer":true,"electricity":false,"cable":false,"phone":true,"internet":false},"units":[{"id":"e9a908de-acd4-4d7b-931d-db66f8746589","amiChart":{"createdAt":"2026-06-01T06:15:26.383Z","updatedAt":"2026-06-01T06:15:26.383Z","id":"645159a2-5611-4bd4-9038-5cdde882ab6d","name":"Noble Skyline - Bloomington"},"amiPercentage":"30","annualIncomeMin":null,"monthlyIncomeMin":"2000","floor":1,"annualIncomeMax":null,"maxOccupancy":3,"minOccupancy":1,"monthlyRent":"1200","numBathrooms":1,"numBedrooms":1,"number":"101","sqFeet":"750","monthlyRentAsPercentOfIncome":null,"bmrProgramChart":null,"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1},"unitRentTypes":null,"accessibilityPriorityType":null,"unitAmiChartOverrides":null}],"unitGroups":[],"unitsSummarized":{"unitTypes":[{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1}],"priorityTypes":[],"amiPercentages":["30"],"byUnitTypeAndRent":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}],"byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1},"totalAvailable":0}],"byAMI":[{"percent":"30","byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}]}],"hmi":{"columns":{"sizeColumn":"listings.householdSize","maxIncomeMonth":"listings.maxIncomeMonth","maxIncomeYear":"listings.maxIncomeYear"},"rows":[{"sizeColumn":1,"maxIncomeMonth":"listings.monthlyIncome*income:$3,000.00","maxIncomeYear":"listings.annualIncome*income:$36,000"},{"sizeColumn":2,"maxIncomeMonth":"listings.monthlyIncome*income:$4,000.00","maxIncomeYear":"listings.annualIncome*income:$48,000"},{"sizeColumn":3,"maxIncomeMonth":"listings.monthlyIncome*income:$5,000.00","maxIncomeYear":"listings.annualIncome*income:$60,000"}]}},"urlSlug":"blue_sky_apartments_3200_old_faithful_inn_rd_yellowstone_national_park_wy","requestedChanges":null,"requestedChangesDate":"1970-01-01T07:00:00.000Z","lotteryOptIn":null,"includeCommunityDisclaimer":null,"communityDisclaimerTitle":null,"communityDisclaimerDescription":null,"marketingType":"marketing","marketingYear":null,"marketingSeason":null,"marketingMonth":null,"homeType":"apartment","isVerified":false,"section8Acceptance":false,"listingNeighborhoodAmenities":{"id":"19ab44a0-e2b0-4fbf-8c81-0a24730e1bb5"},"lastUpdatedByUser":{"id":"e8b52193-bb71-4668-ba2b-0b0fcfb7adbc","name":"First Last"},"property":null,"showWaitlist":false,"configurableAccessibilityFeatures":["configurableAccessibilityFeatures.barrierFreeUnitEntrance","configurableAccessibilityFeatures.elevator","configurableAccessibilityFeatures.grabBars","configurableAccessibilityFeatures.hearing","configurableAccessibilityFeatures.heatingInUnit","configurableAccessibilityFeatures.laundryInBuilding","configurableAccessibilityFeatures.mobility","configurableAccessibilityFeatures.parkingOnSite","configurableAccessibilityFeatures.rollInShower","configurableAccessibilityFeatures.wideDoorways"],"mapPinPosition":"automatic","includeCommunityDisclaimerQuestion":null,"listingAvailabilityQuestion":"availableUnits","listingSection8Acceptance":"no","utilities":["water","gas","sewer","phone"],"reviewOrderQuestion":"reviewOrderFCFS","waitlistOpenQuestion":"no","digitalApplicationChoice":"yes","paperApplicationChoice":"no","referralOpportunityChoice":"no","canApplicationsBeMailedIn":"yes","canPaperApplicationsBePickedUp":"yes","canApplicationsBeDroppedOff":"yes","whereApplicationsMailedIn":"anotherAddress","whereApplicationsPickedUp":"anotherAddress","whereApplicationsDroppedOff":"anotherAddress","arePostmarksConsidered":"yes","postmarkByDateDateField":{"month":"06","day":"06","year":"2025"},"postmarkByDateTimeField":{"hours":"04","minutes":"00","period":"pm"},"applicationDueDateField":{"month":"06","day":"30","year":"2026"},"applicationDueTimeField":{"hours":"11","minutes":"15","period":"pm"},"commonDigitalApplicationChoice":"yes"}`, + params + ) + + check(resp, { "update listing": (r) => r.status === 200 }) + + params = { + headers: { + language: `en`, + appurl: `https://partners.core-dev.bloomhousing.dev`, + accept: `application/json, text/plain, */*`, + referer: `https://partners.core-dev.bloomhousing.dev/listings/5fdfd253-d270-48e4-92ee-793ec5beda78`, + "if-none-match": `"k920zspi18ayu"`, + }, + cookies: {}, + } + + url = http.url`https://partners.core-dev.bloomhousing.dev/api/adapter/jurisdictions/2bc7a6c3-13b2-4a7e-9a98-2f47d9686ba5` + resp = http.request("GET", url, null, params) + + check(resp, { "get updated listing": (r) => r.status === 304 }) + }) +} diff --git a/sites/public/load-testing/old-headless.js b/sites/public/load-testing/old-headless.js index 3c0ddef492d..9aac30e4c31 100644 --- a/sites/public/load-testing/old-headless.js +++ b/sites/public/load-testing/old-headless.js @@ -51,14 +51,14 @@ export default function () { "sec-fetch-site": `same-origin`, "sec-fetch-mode": `cors`, "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=53468ecc-7736-4d3b-a489-10e62e3cb8b7`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=5fdfd253-d270-48e4-92ee-793ec5beda78`, "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, priority: `u=1, i`, }, cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/42561f98-4e0e-46f4-a653-cf8097cd38c0` + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/2bc7a6c3-13b2-4a7e-9a98-2f47d9686ba5` resp = http.request("GET", url, null, params) check(resp, { "jurisdictions get 1": (r) => r.status === 200 }) @@ -75,7 +75,7 @@ export default function () { "sec-fetch-site": `same-origin`, "sec-fetch-mode": `cors`, "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=53468ecc-7736-4d3b-a489-10e62e3cb8b7`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=5fdfd253-d270-48e4-92ee-793ec5beda78`, "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, "if-none-match": `"89n9pbkw5fd51"`, @@ -83,7 +83,7 @@ export default function () { }, cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/53468ecc-7736-4d3b-a489-10e62e3cb8b7` + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/listings/5fdfd253-d270-48e4-92ee-793ec5beda78` resp = http.request("GET", url, null, params) check(resp, { "listing get": (r) => r.status === 200 }) @@ -100,14 +100,14 @@ export default function () { "sec-fetch-site": `same-origin`, "sec-fetch-mode": `cors`, "sec-fetch-dest": `empty`, - referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=53468ecc-7736-4d3b-a489-10e62e3cb8b7`, + referer: `https://core-dev.bloomhousing.dev/applications/start/choose-language?listingId=5fdfd253-d270-48e4-92ee-793ec5beda78`, "accept-encoding": `gzip, deflate, br, zstd`, "accept-language": `en-US,en;q=0.9`, priority: `u=1, i`, }, cookies: {}, } - url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/42561f98-4e0e-46f4-a653-cf8097cd38c0` + url = http.url`https://core-dev.bloomhousing.dev/api/adapter/jurisdictions/2bc7a6c3-13b2-4a7e-9a98-2f47d9686ba5` resp = http.request("GET", url, null, params) check(resp, { "jurisdiction get 2": (r) => r.status === 200 }) @@ -137,7 +137,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"ee78d841-c49a-487d-b316-834037673338"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"fe910943-d01f-4900-bd3e-b62782d61740","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"6cef9823-d856-404e-83e1-d77c0f0caf3b","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"5fdfd253-d270-48e4-92ee-793ec5beda78"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) @@ -169,7 +169,7 @@ export default function () { resp = http.request( "POST", url, - `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"1f227674-9d40-4656-8e6f-23807eba9479"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"3497f10d-404d-48b6-8881-36b1188fe24d","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"45583597-37a0-4c5d-bfcf-9a82a28ba337","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"53468ecc-7736-4d3b-a489-10e62e3cb8b7"},"appUrl":"https://core-dev.bloomhousing.dev"}`, + `{"loaded":false,"autofilled":false,"completedSections":6,"submissionType":"electronical","language":"en","acceptedTerms":true,"status":"submitted","accessibleUnitWaitlistNumber":null,"conventionalUnitWaitlistNumber":null,"manualLotteryPositionNumber":null,"applicant":{"phoneNumberType":"","noPhone":true,"applicantAddress":{"street":"2024 1st Street","city":"Napa","state":"CA","zipCode":"94559","county":"","longitude":-122.29551,"latitude":38.297914},"workInRegion":"no","phoneNumber":"","firstName":"Eric","middleName":"","lastName":"McGarry","birthMonth":"02","birthDay":"12","birthYear":"1998","emailAddress":"eric.mcgarry@exygy.com","noEmail":false,"fullTimeStudent":null,"applicantWorkAddress":{"street":"","street2":"","city":"","state":"","zipCode":"","county":""}},"additionalPhone":false,"additionalPhoneNumber":"","additionalPhoneNumberType":"","contactPreferences":["email"],"householdSize":1,"housingStatus":"","sendMailToMailingAddress":false,"applicationsMailingAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"applicationsAlternateAddress":{"street":"","street2":"","city":"","state":"","zipCode":""},"alternateContact":null,"accessibility":{"mobility":false,"vision":false,"hearing":false,"other":null},"householdExpectingChanges":false,"householdStudent":false,"reasonableAccommodations":"","incomeVouchers":false,"income":"1234.00","incomePeriod":"perYear","householdMember":[],"preferredUnitTypes":[{"id":"ee78d841-c49a-487d-b316-834037673338"}],"demographics":{"ethnicity":"","gender":"","sexualOrientation":"","howDidYouHear":[],"race":[],"spokenLanguage":""},"preferences":[{"multiselectQuestionId":"fe910943-d01f-4900-bd3e-b62782d61740","key":"City Employees","claimed":true,"options":[{"key":"At least one member of my household is a city employee","checked":true,"extraData":[]}]}],"programs":[{"multiselectQuestionId":"6cef9823-d856-404e-83e1-d77c0f0caf3b","key":"Veteran","claimed":true,"options":[{"key":"Yes","checked":true,"extraData":[]}]}],"applicationSelections":[],"confirmationCode":"","id":"","reachedReviewStep":true,"reviewStatus":"pending","listings":{"id":"5fdfd253-d270-48e4-92ee-793ec5beda78"},"appUrl":"https://core-dev.bloomhousing.dev"}`, params ) check(resp, { "submission ": (r) => r.status === 201 }) From 6f7b40a4af325b9c1f30eba7b19aeb7269042970 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 10:53:53 -0700 Subject: [PATCH 28/38] fix: minor tweaks --- api/prisma/seed-staging.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/prisma/seed-staging.ts b/api/prisma/seed-staging.ts index 16a3cc687a4..01614dc439a 100644 --- a/api/prisma/seed-staging.ts +++ b/api/prisma/seed-staging.ts @@ -122,8 +122,8 @@ export const stagingSeed = async ( }), }); - for (let i = 0; i < 100000; i++) { - prismaClient.userAccounts.create({ + for (let i = 0; i < 20000; i++) { + await prismaClient.userAccounts.create({ data: await userFactory({ email: `yazeed.loonat+${i}@exygy.com`, confirmedAt: new Date(), @@ -131,7 +131,7 @@ export const stagingSeed = async ( acceptedTerms: true, password: 'abcdef', notificationPreferences: { - regions: ['test'], + regions: ['Eastside'], }, userPreferences: true, }), From 8e4ceeb16bd236c33d6965e50787570124b6a332 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 11:43:52 -0700 Subject: [PATCH 29/38] fix: further cuts --- api/prisma/seed-staging.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/prisma/seed-staging.ts b/api/prisma/seed-staging.ts index 01614dc439a..d6e7fc08b82 100644 --- a/api/prisma/seed-staging.ts +++ b/api/prisma/seed-staging.ts @@ -122,7 +122,7 @@ export const stagingSeed = async ( }), }); - for (let i = 0; i < 20000; i++) { + for (let i = 0; i < 10000; i++) { await prismaClient.userAccounts.create({ data: await userFactory({ email: `yazeed.loonat+${i}@exygy.com`, From 84ffed80c998bda46a1589826cf897c6bf39359c Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 13:25:40 -0700 Subject: [PATCH 30/38] fix: some updates that will need to be rolled back --- api/prisma/seed-staging.ts | 18 --------------- api/src/controllers/listing.controller.ts | 13 +++++++++++ api/src/services/listing.service.ts | 25 +++++++++++++++++++++ shared-helpers/src/types/backend-swagger.ts | 14 +++++++++++- 4 files changed, 51 insertions(+), 19 deletions(-) diff --git a/api/prisma/seed-staging.ts b/api/prisma/seed-staging.ts index d6e7fc08b82..62f251dd478 100644 --- a/api/prisma/seed-staging.ts +++ b/api/prisma/seed-staging.ts @@ -122,24 +122,6 @@ export const stagingSeed = async ( }), }); - for (let i = 0; i < 10000; i++) { - await prismaClient.userAccounts.create({ - data: await userFactory({ - email: `yazeed.loonat+${i}@exygy.com`, - confirmedAt: new Date(), - jurisdictionIds: allJurisdictions, - acceptedTerms: true, - password: 'abcdef', - notificationPreferences: { - regions: ['Eastside'], - }, - userPreferences: true, - }), - }); - if (i % 1000 === 0) { - console.log(new Date(), 'I have created', i, ' users so far'); - } - } // create a support admin await prismaClient.userAccounts.create({ data: await userFactory({ diff --git a/api/src/controllers/listing.controller.ts b/api/src/controllers/listing.controller.ts index 75a0cf4a7ac..535f6cb135b 100644 --- a/api/src/controllers/listing.controller.ts +++ b/api/src/controllers/listing.controller.ts @@ -92,6 +92,19 @@ export class ListingController { return await this.listingService.list(queryParams); } + // TODO: REMOVE THIS + @Get('makeusers') + @ApiOperation({ + summary: 'make users', + operationId: 'makeusers', + }) + @UsePipes(new ValidationPipe(defaultValidationPipeOptions)) + @UseInterceptors(ClassSerializerInterceptor) + @ApiOkResponse({ type: PaginatedListingDto }) + public async makeUsers() { + return await this.listingService.makeUsers(); + } + @Post('list') @ApiOperation({ summary: 'Get a paginated set of listings', diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 9288f5a6131..29a42ea8e97 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -68,6 +68,7 @@ import { doJurisdictionHaveFeatureFlagSet } from '../utilities/feature-flag-util import { addUnitGroupsSummarized } from '../utilities/unit-groups-transformations'; import { ListingMultiselectQuestion } from '../dtos/listings/listing-multiselect-question.dto'; import { SnapshotCreateService } from './snapshot-create.service'; +import { userFactory } from '../../prisma/seed-helpers/user-factory'; dayjs.extend(utc); dayjs.extend(tz); @@ -3405,4 +3406,28 @@ export class ListingService implements OnModuleInit { } as ListingMapMarker; }); } + + async makeUsers() { + const juris = await this.prisma.jurisdictions.findMany({ + select: { + id: true, + name: true, + }, + }); + for (let i = 0; i < 10000; i++) { + await this.prisma.userAccounts.create({ + data: await userFactory({ + email: `yazeed.loonat+${i}@exygy.com`, + confirmedAt: new Date(), + jurisdictionIds: juris.map((elem) => elem.id), + acceptedTerms: true, + password: 'abcdef', + notificationPreferences: { + regions: ['Eastside'], + }, + userPreferences: true, + }), + }); + } + } } diff --git a/shared-helpers/src/types/backend-swagger.ts b/shared-helpers/src/types/backend-swagger.ts index e3b5ca0ffe7..9f8207ba83a 100644 --- a/shared-helpers/src/types/backend-swagger.ts +++ b/shared-helpers/src/types/backend-swagger.ts @@ -252,6 +252,18 @@ export class ListingsService { axios(configs, resolve, reject) }) } + /** + * make users + */ + makeusers(options: IRequestOptions = {}): Promise { + return new Promise((resolve, reject) => { + let url = basePath + "/listings/makeusers" + + const configs: IRequestConfig = getConfigs("get", "application/json", url, options) + + axios(configs, resolve, reject) + }) + } /** * Get a paginated set of listings */ @@ -3420,7 +3432,7 @@ export interface ListingFilterParams { availability?: FilterAvailabilityEnum /** */ - bathrooms?: number + bathrooms?: [] /** */ bedrooms?: number From f571a82e3096fc97a429da878844f5ebb1502e2c Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 15:16:13 -0700 Subject: [PATCH 31/38] fix: removing removables and upping to 100 --- api/src/controllers/listing.controller.ts | 13 --------- api/src/services/listing.service.ts | 27 +------------------ shared-helpers/src/types/backend-swagger.ts | 12 --------- .../load-testing/headless-listing-save.js | 18 +------------ 4 files changed, 2 insertions(+), 68 deletions(-) diff --git a/api/src/controllers/listing.controller.ts b/api/src/controllers/listing.controller.ts index 535f6cb135b..75a0cf4a7ac 100644 --- a/api/src/controllers/listing.controller.ts +++ b/api/src/controllers/listing.controller.ts @@ -92,19 +92,6 @@ export class ListingController { return await this.listingService.list(queryParams); } - // TODO: REMOVE THIS - @Get('makeusers') - @ApiOperation({ - summary: 'make users', - operationId: 'makeusers', - }) - @UsePipes(new ValidationPipe(defaultValidationPipeOptions)) - @UseInterceptors(ClassSerializerInterceptor) - @ApiOkResponse({ type: PaginatedListingDto }) - public async makeUsers() { - return await this.listingService.makeUsers(); - } - @Post('list') @ApiOperation({ summary: 'Get a paginated set of listings', diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 29a42ea8e97..88b1a9038ab 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -68,7 +68,6 @@ import { doJurisdictionHaveFeatureFlagSet } from '../utilities/feature-flag-util import { addUnitGroupsSummarized } from '../utilities/unit-groups-transformations'; import { ListingMultiselectQuestion } from '../dtos/listings/listing-multiselect-question.dto'; import { SnapshotCreateService } from './snapshot-create.service'; -import { userFactory } from '../../prisma/seed-helpers/user-factory'; dayjs.extend(utc); dayjs.extend(tz); @@ -3001,7 +3000,7 @@ export class ListingService implements OnModuleInit { }, ], }, - take: 10, + take: 100, }); if (!emailUsers.length) { @@ -3406,28 +3405,4 @@ export class ListingService implements OnModuleInit { } as ListingMapMarker; }); } - - async makeUsers() { - const juris = await this.prisma.jurisdictions.findMany({ - select: { - id: true, - name: true, - }, - }); - for (let i = 0; i < 10000; i++) { - await this.prisma.userAccounts.create({ - data: await userFactory({ - email: `yazeed.loonat+${i}@exygy.com`, - confirmedAt: new Date(), - jurisdictionIds: juris.map((elem) => elem.id), - acceptedTerms: true, - password: 'abcdef', - notificationPreferences: { - regions: ['Eastside'], - }, - userPreferences: true, - }), - }); - } - } } diff --git a/shared-helpers/src/types/backend-swagger.ts b/shared-helpers/src/types/backend-swagger.ts index 9f8207ba83a..72390b1da4e 100644 --- a/shared-helpers/src/types/backend-swagger.ts +++ b/shared-helpers/src/types/backend-swagger.ts @@ -252,18 +252,6 @@ export class ListingsService { axios(configs, resolve, reject) }) } - /** - * make users - */ - makeusers(options: IRequestOptions = {}): Promise { - return new Promise((resolve, reject) => { - let url = basePath + "/listings/makeusers" - - const configs: IRequestConfig = getConfigs("get", "application/json", url, options) - - axios(configs, resolve, reject) - }) - } /** * Get a paginated set of listings */ diff --git a/sites/partners/load-testing/headless-listing-save.js b/sites/partners/load-testing/headless-listing-save.js index 08219371b8f..ff5e39007e8 100644 --- a/sites/partners/load-testing/headless-listing-save.js +++ b/sites/partners/load-testing/headless-listing-save.js @@ -63,26 +63,10 @@ export default function () { resp = http.request( "PUT", url, - `{"id":"5fdfd253-d270-48e4-92ee-793ec5beda78","assets":[],"createdAt":"2026-06-01T06:15:26.738Z","updatedAt":"2026-06-01T06:50:23.921Z","additionalApplicationSubmissionNotes":null,"digitalApplication":true,"commonDigitalApplication":true,"paperApplication":false,"referralOpportunity":false,"accessibility":null,"amenities":null,"buildingTotalUnits":0,"developer":"Cielo Housing","listingFileNumber":null,"householdSizeMax":0,"householdSizeMin":0,"neighborhood":"North End","region":"Eastside","configurableRegion":null,"petPolicy":null,"allowsDogs":null,"allowsCats":null,"smokingPolicy":null,"unitsAvailable":1,"unitAmenities":null,"servicesOffered":null,"yearBuilt":1900,"applicationDueDate":"2026-07-01T06:15:00.000Z","applicationOpenDate":"2026-05-31T06:15:25.104Z","applicationFee":"60","creditScreeningFee":null,"applicationOrganization":null,"applicationPickUpAddressOfficeHours":null,"applicationPickUpAddressType":null,"applicationDropOffAddressOfficeHours":null,"applicationDropOffAddressType":null,"applicationMailingAddressType":null,"buildingSelectionCriteria":null,"marketingFlyer":null,"accessibleMarketingFlyer":null,"cocInfo":null,"costsNotIncluded":null,"creditHistory":null,"criminalBackground":null,"depositMin":"0","depositMax":"50","depositType":null,"depositHelperText":"Deposit will not exceed one month's rent","disableUnitsAccordion":false,"hasHudEbllClearance":null,"leasingAgentEmail":"joe@smithrealty.com","leasingAgentName":"Joe Smith","leasingAgentOfficeHours":"9:00am - 5:00pm, Monday-Friday","leasingAgentPhone":"(773) 580-5897","leasingAgentTitle":"Senior Leasing Agent","managementWebsite":null,"name":"Blue Sky Apartments","parkingFee":null,"parkType":null,"postmarkedApplicationsReceivedByDate":"2025-06-06T23:00:00.000Z","programRules":null,"rentalAssistance":"Housing Choice Vouchers, Section 8 and other valid rental assistance programs will be considered for this property. ","rentalHistory":null,"requiredDocuments":null,"requiredDocumentsList":null,"specialNotes":null,"waitlistCurrentSize":null,"waitlistMaxSize":null,"whatToExpect":"

Applicants will be contacted by the property agent in rank order until vacancies are filled. All of the information that you have provided will be verified and your eligibility confirmed. Your application will be removed from the waitlist if you have made any fraudulent statements. If we cannot verify a housing preference that you have claimed, you will not receive the preference but will not be otherwise penalized. Should your application be chosen, be prepared to fill out a more detailed application and provide required supporting documents.

","whatToExpectAdditionalText":null,"status":"active","reviewOrderType":"firstComeFirstServe","displayWaitlistSize":false,"reservedCommunityDescription":"Seniors over 55 are eligible for this property ","reservedCommunityMinAge":null,"resultLink":null,"isWaitlistOpen":false,"waitlistOpenSpots":null,"customMapPin":false,"contentUpdatedAt":"2026-06-01T06:38:31.303Z","publishedAt":"2026-06-01T06:19:08.419Z","scheduledPublishAt":null,"closedAt":null,"afsLastRunAt":"1970-01-01T00:00:00.000Z","lotteryLastPublishedAt":null,"lotteryLastRunAt":null,"lotteryStatus":null,"lastApplicationUpdateAt":"2026-06-01T06:50:23.919Z","listingMultiselectQuestions":[{"multiselectQuestions":{"createdAt":"2026-06-01T06:15:26.415Z","updatedAt":"2026-06-01T06:15:26.415Z","id":"fe910943-d01f-4900-bd3e-b62782d61740","applicationSection":"preferences","description":"Employees of the local city.","isExclusive":false,"hideFromListing":false,"links":[],"multiselectOptions":[],"name":"City Employees","options":[{"collectAddress":false,"ordinal":0,"text":"At least one member of my household is a city employee"}],"optOutText":null,"status":"draft","subText":"sub text for City Employees","text":"City Employees"},"ordinal":1,"id":"fe910943-d01f-4900-bd3e-b62782d61740","listingId":"5fdfd253-d270-48e4-92ee-793ec5beda78"},{"multiselectQuestions":{"createdAt":"2026-06-01T06:15:26.429Z","updatedAt":"2026-06-01T06:15:26.429Z","id":"6cef9823-d856-404e-83e1-d77c0f0caf3b","applicationSection":"programs","description":"Have you or anyone in your household served in the US military?","isExclusive":false,"hideFromListing":false,"links":[],"multiselectOptions":[],"name":"Veterans","options":[{"exclusive":true,"ordinal":0,"text":"Yes"},{"exclusive":true,"ordinal":1,"text":"No"}],"optOutText":null,"status":"draft","subText":"sub text for Veterans","text":"Veterans"},"ordinal":1,"id":"6cef9823-d856-404e-83e1-d77c0f0caf3b","listingId":"5fdfd253-d270-48e4-92ee-793ec5beda78"}],"applicationMethods":[{"createdAt":"2026-06-01T06:38:31.306Z","updatedAt":"2026-06-01T06:38:31.306Z","id":"2af7095c-8da4-4d51-ab65-2dc41dd3a759","type":"Internal","label":null,"externalReference":null,"acceptsPostmarkedApplications":null,"phoneNumber":null,"paperApplications":[]}],"listingEvents":[],"listingsBuildingAddress":{"id":"c245a4ca-389f-42bb-91bb-e674fe745626","placeName":"Yellowstone National Park","city":"Yellowstone National Park","county":"Teton","state":"WY","street":"3200 Old Faithful Inn Rd","zipCode":"82190","latitude":44.45995,"longitude":-110.831197},"listingsApplicationPickUpAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationDropOffAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationMailingAddress":{"placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsLeasingAgentAddress":{"id":"df45caa6-6bfd-4c4f-8b86-fe36b7e7148b","placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsMarketingFlyerFile":null,"listingsAccessibleMarketingFlyerFile":null,"jurisdictions":{"id":"2bc7a6c3-13b2-4a7e-9a98-2f47d9686ba5","name":"Bloomington"},"listingsResult":null,"reservedCommunityTypes":null,"listingImages":[{"ordinal":0,"assets":{"createdAt":"2026-06-01T06:15:26.741Z","updatedAt":"2026-06-01T06:15:26.741Z","id":"8fdc510b-6c0d-43b1-8374-e229d004c00a","fileId":"https://res.cloudinary.com/exygy/image/upload/w_1302,c_limit,q_65/dev/trayan-xIOYJSVEZ8c-unsplash_f1axsg.jpg","label":"cloudinaryBuilding"},"description":""}],"listingFeatures":{"accessibleHeightToilet":false,"accessibleParking":false,"acInUnit":false,"barrierFreeBathroom":false,"barrierFreeEntrance":false,"barrierFreePropertyEntrance":false,"barrierFreeUnitEntrance":true,"bathGrabBarsOrReinforcements":false,"bathroomCounterLowered":false,"brailleSignageInBuilding":false,"carbonMonoxideDetectorWithStrobe":false,"carpetInUnit":false,"elevator":true,"extraAudibleCarbonMonoxideDetector":false,"extraAudibleSmokeDetector":false,"fireSuppressionSprinklerSystem":false,"frontControlsDishwasher":false,"frontControlsStoveCookTop":false,"grabBars":true,"hardFlooringInUnit":false,"hearing":true,"hearingAndVision":false,"heatingInUnit":true,"inUnitWasherDryer":false,"kitchenCounterLowered":false,"laundryInBuilding":true,"leverHandlesOnDoors":false,"leverHandlesOnFaucets":false,"loweredCabinets":false,"loweredLightSwitch":false,"mobility":true,"noEntryStairs":false,"nonDigitalKitchenAppliances":false,"noStairsToParkingSpots":false,"noStairsWithinUnit":false,"parkingOnSite":true,"refrigeratorWithBottomDoorFreezer":false,"rollInShower":true,"serviceAnimalsAllowed":false,"smokeDetectorWithStrobe":false,"streetLevelEntrance":false,"toiletGrabBarsOrReinforcements":false,"ttyAmplifiedPhone":false,"turningCircleInBathrooms":false,"visual":false,"walkInShower":false,"wheelchairRamp":false,"wideDoorways":true},"listingUtilities":{"water":true,"gas":true,"trash":false,"sewer":true,"electricity":false,"cable":false,"phone":true,"internet":false},"units":[{"id":"e9a908de-acd4-4d7b-931d-db66f8746589","amiChart":{"createdAt":"2026-06-01T06:15:26.383Z","updatedAt":"2026-06-01T06:15:26.383Z","id":"645159a2-5611-4bd4-9038-5cdde882ab6d","name":"Noble Skyline - Bloomington"},"amiPercentage":"30","annualIncomeMin":null,"monthlyIncomeMin":"2000","floor":1,"annualIncomeMax":null,"maxOccupancy":3,"minOccupancy":1,"monthlyRent":"1200","numBathrooms":1,"numBedrooms":1,"number":"101","sqFeet":"750","monthlyRentAsPercentOfIncome":null,"bmrProgramChart":null,"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1},"unitRentTypes":null,"accessibilityPriorityType":null,"unitAmiChartOverrides":null}],"unitGroups":[],"unitsSummarized":{"unitTypes":[{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1}],"priorityTypes":[],"amiPercentages":["30"],"byUnitTypeAndRent":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}],"byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1},"totalAvailable":0}],"byAMI":[{"percent":"30","byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"ee78d841-c49a-487d-b316-834037673338","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}]}],"hmi":{"columns":{"sizeColumn":"listings.householdSize","maxIncomeMonth":"listings.maxIncomeMonth","maxIncomeYear":"listings.maxIncomeYear"},"rows":[{"sizeColumn":1,"maxIncomeMonth":"listings.monthlyIncome*income:$3,000.00","maxIncomeYear":"listings.annualIncome*income:$36,000"},{"sizeColumn":2,"maxIncomeMonth":"listings.monthlyIncome*income:$4,000.00","maxIncomeYear":"listings.annualIncome*income:$48,000"},{"sizeColumn":3,"maxIncomeMonth":"listings.monthlyIncome*income:$5,000.00","maxIncomeYear":"listings.annualIncome*income:$60,000"}]}},"urlSlug":"blue_sky_apartments_3200_old_faithful_inn_rd_yellowstone_national_park_wy","requestedChanges":null,"requestedChangesDate":"1970-01-01T07:00:00.000Z","lotteryOptIn":null,"includeCommunityDisclaimer":null,"communityDisclaimerTitle":null,"communityDisclaimerDescription":null,"marketingType":"marketing","marketingYear":null,"marketingSeason":null,"marketingMonth":null,"homeType":"apartment","isVerified":false,"section8Acceptance":false,"listingNeighborhoodAmenities":{"id":"19ab44a0-e2b0-4fbf-8c81-0a24730e1bb5"},"lastUpdatedByUser":{"id":"e8b52193-bb71-4668-ba2b-0b0fcfb7adbc","name":"First Last"},"property":null,"showWaitlist":false,"configurableAccessibilityFeatures":["configurableAccessibilityFeatures.barrierFreeUnitEntrance","configurableAccessibilityFeatures.elevator","configurableAccessibilityFeatures.grabBars","configurableAccessibilityFeatures.hearing","configurableAccessibilityFeatures.heatingInUnit","configurableAccessibilityFeatures.laundryInBuilding","configurableAccessibilityFeatures.mobility","configurableAccessibilityFeatures.parkingOnSite","configurableAccessibilityFeatures.rollInShower","configurableAccessibilityFeatures.wideDoorways"],"mapPinPosition":"automatic","includeCommunityDisclaimerQuestion":null,"listingAvailabilityQuestion":"availableUnits","listingSection8Acceptance":"no","utilities":["water","gas","sewer","phone"],"reviewOrderQuestion":"reviewOrderFCFS","waitlistOpenQuestion":"no","digitalApplicationChoice":"yes","paperApplicationChoice":"no","referralOpportunityChoice":"no","canApplicationsBeMailedIn":"yes","canPaperApplicationsBePickedUp":"yes","canApplicationsBeDroppedOff":"yes","whereApplicationsMailedIn":"anotherAddress","whereApplicationsPickedUp":"anotherAddress","whereApplicationsDroppedOff":"anotherAddress","arePostmarksConsidered":"yes","postmarkByDateDateField":{"month":"06","day":"06","year":"2025"},"postmarkByDateTimeField":{"hours":"04","minutes":"00","period":"pm"},"applicationDueDateField":{"month":"06","day":"30","year":"2026"},"applicationDueTimeField":{"hours":"11","minutes":"15","period":"pm"},"commonDigitalApplicationChoice":"yes"}`, + `{"id":"d8842fca-6830-486f-80cc-85296a41847c","assets":[],"createdAt":"2026-06-01T06:15:26.738Z","updatedAt":"2026-06-01T06:50:23.921Z","additionalApplicationSubmissionNotes":null,"digitalApplication":true,"commonDigitalApplication":true,"paperApplication":false,"referralOpportunity":false,"accessibility":null,"amenities":null,"buildingTotalUnits":0,"developer":"Cielo Housing","listingFileNumber":null,"householdSizeMax":0,"householdSizeMin":0,"neighborhood":"North End","region":null,"configurableRegion":null,"petPolicy":null,"allowsDogs":null,"allowsCats":null,"smokingPolicy":null,"unitsAvailable":1,"unitAmenities":null,"servicesOffered":null,"yearBuilt":1900,"applicationDueDate":"2026-07-01T06:15:00.000Z","applicationOpenDate":"2026-05-31T06:15:25.104Z","applicationFee":"60","creditScreeningFee":null,"applicationOrganization":null,"applicationPickUpAddressOfficeHours":null,"applicationPickUpAddressType":null,"applicationDropOffAddressOfficeHours":null,"applicationDropOffAddressType":null,"applicationMailingAddressType":null,"buildingSelectionCriteria":null,"marketingFlyer":null,"accessibleMarketingFlyer":null,"cocInfo":null,"costsNotIncluded":null,"creditHistory":null,"criminalBackground":null,"depositMin":"0","depositMax":"50","depositType":null,"depositHelperText":"Deposit will not exceed one month's rent","disableUnitsAccordion":false,"hasHudEbllClearance":null,"leasingAgentEmail":"joe@smithrealty.com","leasingAgentName":"Joe Smith","leasingAgentOfficeHours":"9:00am - 5:00pm, Monday-Friday","leasingAgentPhone":"(773) 580-5897","leasingAgentTitle":"Senior Leasing Agent","managementWebsite":null,"name":"test notification listing","parkingFee":null,"parkType":null,"postmarkedApplicationsReceivedByDate":"2025-06-06T23:00:00.000Z","programRules":null,"rentalAssistance":"Housing Choice Vouchers, Section 8 and other valid rental assistance programs will be considered for this property. ","rentalHistory":null,"requiredDocuments":null,"requiredDocumentsList":null,"specialNotes":null,"waitlistCurrentSize":null,"waitlistMaxSize":null,"whatToExpect":"

Applicants will be contacted by the property agent in rank order until vacancies are filled. All of the information that you have provided will be verified and your eligibility confirmed. Your application will be removed from the waitlist if you have made any fraudulent statements. If we cannot verify a housing preference that you have claimed, you will not receive the preference but will not be otherwise penalized. Should your application be chosen, be prepared to fill out a more detailed application and provide required supporting documents.

","whatToExpectAdditionalText":null,"status":"active","reviewOrderType":"firstComeFirstServe","displayWaitlistSize":false,"reservedCommunityDescription":"Seniors over 55 are eligible for this property ","reservedCommunityMinAge":null,"resultLink":null,"isWaitlistOpen":false,"waitlistOpenSpots":null,"customMapPin":false,"contentUpdatedAt":"2026-06-01T06:38:31.303Z","publishedAt":"2026-06-01T06:19:08.419Z","scheduledPublishAt":null,"closedAt":null,"afsLastRunAt":"1970-01-01T00:00:00.000Z","lotteryLastPublishedAt":null,"lotteryLastRunAt":null,"lotteryStatus":null,"lastApplicationUpdateAt":"2026-06-01T06:50:23.919Z","listingMultiselectQuestions":[],"applicationMethods":[{"createdAt":"2026-06-01T06:38:31.306Z","updatedAt":"2026-06-01T06:38:31.306Z","id":"6eda6877-1d17-4451-8281-b3efadd00165","type":"Internal","label":null,"externalReference":null,"acceptsPostmarkedApplications":null,"phoneNumber":null,"paperApplications":[]}],"listingEvents":[],"listingsBuildingAddress":{"id":"a3f24b64-8e54-4a2d-aa3a-5026d3dee83e","placeName":"Yellowstone National Park","city":"Yellowstone National Park","county":"Teton","state":"WY","street":"3200 Old Faithful Inn Rd","zipCode":"82190","latitude":44.45995,"longitude":-110.831197},"listingsApplicationPickUpAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationDropOffAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationMailingAddress":{"placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsLeasingAgentAddress":{"id":"fb4715f2-224a-454b-8717-914d37097568","placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsMarketingFlyerFile":null,"listingsAccessibleMarketingFlyerFile":null,"jurisdictions":{"id":"3f0dbbe8-a84d-4158-bfc8-fd8e378d68dc","name":"Bloomington"},"listingsResult":null,"reservedCommunityTypes":null,"listingImages":[{"ordinal":0,"assets":{"createdAt":"2026-06-01T06:15:26.741Z","updatedAt":"2026-06-01T06:15:26.741Z","id":"ee118a51-3e74-40e8-bf35-9ed613ff62b2","fileId":"https://res.cloudinary.com/exygy/image/upload/w_1302,c_limit,q_65/dev/trayan-xIOYJSVEZ8c-unsplash_f1axsg.jpg","label":"cloudinaryBuilding"},"description":""}],"listingFeatures":{"accessibleHeightToilet":false,"accessibleParking":false,"acInUnit":false,"barrierFreeBathroom":false,"barrierFreeEntrance":false,"barrierFreePropertyEntrance":false,"barrierFreeUnitEntrance":true,"bathGrabBarsOrReinforcements":false,"bathroomCounterLowered":false,"brailleSignageInBuilding":false,"carbonMonoxideDetectorWithStrobe":false,"carpetInUnit":false,"elevator":true,"extraAudibleCarbonMonoxideDetector":false,"extraAudibleSmokeDetector":false,"fireSuppressionSprinklerSystem":false,"frontControlsDishwasher":false,"frontControlsStoveCookTop":false,"grabBars":true,"hardFlooringInUnit":false,"hearing":true,"hearingAndVision":false,"heatingInUnit":true,"inUnitWasherDryer":false,"kitchenCounterLowered":false,"laundryInBuilding":true,"leverHandlesOnDoors":false,"leverHandlesOnFaucets":false,"loweredCabinets":false,"loweredLightSwitch":false,"mobility":true,"noEntryStairs":false,"nonDigitalKitchenAppliances":false,"noStairsToParkingSpots":false,"noStairsWithinUnit":false,"parkingOnSite":true,"refrigeratorWithBottomDoorFreezer":false,"rollInShower":true,"serviceAnimalsAllowed":false,"smokeDetectorWithStrobe":false,"streetLevelEntrance":false,"toiletGrabBarsOrReinforcements":false,"ttyAmplifiedPhone":false,"turningCircleInBathrooms":false,"visual":false,"walkInShower":false,"wheelchairRamp":false,"wideDoorways":true},"listingUtilities":{"water":true,"gas":true,"trash":false,"sewer":true,"electricity":false,"cable":false,"phone":true,"internet":false},"units":[{"id":"4c129a57-c4d6-4d60-8cf6-83294f72d22b","amiChart":{"createdAt":"2026-06-01T06:15:26.383Z","updatedAt":"2026-06-01T06:15:26.383Z","id":"5e8aa82a-9ccb-4652-866b-0e5dabbc6001","name":"Noble Skyline - Bloomington"},"amiPercentage":"30","annualIncomeMin":null,"monthlyIncomeMin":"2000","floor":1,"annualIncomeMax":null,"maxOccupancy":3,"minOccupancy":1,"monthlyRent":"1200","numBathrooms":1,"numBedrooms":1,"number":"101","sqFeet":"750","monthlyRentAsPercentOfIncome":null,"bmrProgramChart":null,"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"unitRentTypes":null,"accessibilityPriorityType":null,"unitAmiChartOverrides":null}],"unitGroups":[],"unitsSummarized":{"unitTypes":[{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1}],"priorityTypes":[],"amiPercentages":["30"],"byUnitTypeAndRent":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}],"byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":0}],"byAMI":[{"percent":"30","byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}]}],"hmi":{"columns":{"sizeColumn":"listings.householdSize","maxIncomeMonth":"listings.maxIncomeMonth","maxIncomeYear":"listings.maxIncomeYear"},"rows":[{"sizeColumn":1,"maxIncomeMonth":"listings.monthlyIncome*income:$3,000.00","maxIncomeYear":"listings.annualIncome*income:$36,000"},{"sizeColumn":2,"maxIncomeMonth":"listings.monthlyIncome*income:$4,000.00","maxIncomeYear":"listings.annualIncome*income:$48,000"},{"sizeColumn":3,"maxIncomeMonth":"listings.monthlyIncome*income:$5,000.00","maxIncomeYear":"listings.annualIncome*income:$60,000"}]}},"urlSlug":"blue_sky_apartments_3200_old_faithful_inn_rd_yellowstone_national_park_wy","requestedChanges":null,"requestedChangesDate":"1970-01-01T07:00:00.000Z","lotteryOptIn":null,"includeCommunityDisclaimer":null,"communityDisclaimerTitle":null,"communityDisclaimerDescription":null,"marketingType":"marketing","marketingYear":null,"marketingSeason":null,"marketingMonth":null,"homeType":"apartment","isVerified":false,"section8Acceptance":false,"listingNeighborhoodAmenities":null,"lastUpdatedByUser":{"id":"2d272706-6d90-4457-839b-98fe00a0b464","name":"First Last"},"property":null,"showWaitlist":false,"configurableAccessibilityFeatures":["configurableAccessibilityFeatures.barrierFreeUnitEntrance","configurableAccessibilityFeatures.elevator","configurableAccessibilityFeatures.grabBars","configurableAccessibilityFeatures.hearing","configurableAccessibilityFeatures.heatingInUnit","configurableAccessibilityFeatures.laundryInBuilding","configurableAccessibilityFeatures.mobility","configurableAccessibilityFeatures.parkingOnSite","configurableAccessibilityFeatures.rollInShower","configurableAccessibilityFeatures.wideDoorways"],"mapPinPosition":"automatic","includeCommunityDisclaimerQuestion":null,"listingAvailabilityQuestion":"availableUnits","listingSection8Acceptance":"no","utilities":["water","gas","sewer","phone"],"reviewOrderQuestion":"reviewOrderFCFS","waitlistOpenQuestion":"no","digitalApplicationChoice":"yes","paperApplicationChoice":"no","referralOpportunityChoice":"no","canApplicationsBeMailedIn":"yes","canPaperApplicationsBePickedUp":"yes","canApplicationsBeDroppedOff":"yes","whereApplicationsMailedIn":"anotherAddress","whereApplicationsPickedUp":"anotherAddress","whereApplicationsDroppedOff":"anotherAddress","arePostmarksConsidered":"yes","postmarkByDateDateField":{"month":"06","day":"06","year":"2025"},"postmarkByDateTimeField":{"hours":"04","minutes":"00","period":"pm"},"applicationDueDateField":{"month":"06","day":"30","year":"2026"},"applicationDueTimeField":{"hours":"11","minutes":"15","period":"pm"},"commonDigitalApplicationChoice":"yes"}`, params ) check(resp, { "update listing": (r) => r.status === 200 }) - - params = { - headers: { - language: `en`, - appurl: `https://partners.core-dev.bloomhousing.dev`, - accept: `application/json, text/plain, */*`, - referer: `https://partners.core-dev.bloomhousing.dev/listings/5fdfd253-d270-48e4-92ee-793ec5beda78`, - "if-none-match": `"k920zspi18ayu"`, - }, - cookies: {}, - } - - url = http.url`https://partners.core-dev.bloomhousing.dev/api/adapter/jurisdictions/2bc7a6c3-13b2-4a7e-9a98-2f47d9686ba5` - resp = http.request("GET", url, null, params) - - check(resp, { "get updated listing": (r) => r.status === 304 }) }) } From 134ea772db8b4ef651dc03a26b4630a11e45f39e Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 15:37:13 -0700 Subject: [PATCH 32/38] fix: more removables and uppingto 500 --- api/prisma/seed-helpers/user-factory.ts | 8 --- api/prisma/seed-staging.ts | 1 - api/prisma/seed-staging/seed-bloomington.ts | 73 --------------------- api/src/services/listing.service.ts | 2 +- 4 files changed, 1 insertion(+), 83 deletions(-) diff --git a/api/prisma/seed-helpers/user-factory.ts b/api/prisma/seed-helpers/user-factory.ts index 0ee8df8d2bd..21fd8a44f9d 100644 --- a/api/prisma/seed-helpers/user-factory.ts +++ b/api/prisma/seed-helpers/user-factory.ts @@ -26,7 +26,6 @@ export const userFactory = async (optionalParams?: { isApproved?: boolean; agencyId?: string; notificationPreferences?: UserNotificationPreferences; - userPreferences?: boolean; }): Promise => ({ agreedToTermsOfService: optionalParams?.acceptedTerms || false, confirmedAt: optionalParams?.confirmedAt || null, @@ -110,11 +109,4 @@ export const userFactory = async (optionalParams?: { }, } : undefined, - userPreferences: optionalParams?.userPreferences - ? { - create: { - sendEmailNotifications: true, - }, - } - : undefined, }); diff --git a/api/prisma/seed-staging.ts b/api/prisma/seed-staging.ts index 62f251dd478..d7c58407258 100644 --- a/api/prisma/seed-staging.ts +++ b/api/prisma/seed-staging.ts @@ -121,7 +121,6 @@ export const stagingSeed = async ( password: 'abcdef', }), }); - // create a support admin await prismaClient.userAccounts.create({ data: await userFactory({ diff --git a/api/prisma/seed-staging/seed-bloomington.ts b/api/prisma/seed-staging/seed-bloomington.ts index 4387e3b450b..5f2bad205dd 100644 --- a/api/prisma/seed-staging/seed-bloomington.ts +++ b/api/prisma/seed-staging/seed-bloomington.ts @@ -1,7 +1,6 @@ import { ApplicationSubmissionTypeEnum, LanguagesEnum, - ListingsStatusEnum, MultiselectQuestionsApplicationSectionEnum, MultiselectQuestionsStatusEnum, PrismaClient, @@ -547,78 +546,6 @@ export const createBloomingtonJurisdiction = async ( userAccounts: [{ id: partnerUser.id }], enableListingFeaturesAndUtilities: true, }, - { - listing: { - ...elmVillage, - name: 'test notification listing', - status: ListingsStatusEnum.active, - region: 'Eastside', - }, - numberOfUnits: 0, - applications: [ - await applicationFactory({ - enableV2MSQ: msqV2, - multiselectQuestions: [workInCityQuestion, cityEmployeeQuestion], - }), - await applicationFactory({ - enableV2MSQ: msqV2, - multiselectQuestions: [ - cityEmployeeQuestion, - workInCityQuestion, - veteransProgramQuestion, - ], - }), - await applicationFactory({ - enableV2MSQ: msqV2, - multiselectQuestions: [workInCityQuestion, cityEmployeeQuestion], - }), - ...(await applicationFactoryMany(2, { - enableV2MSQ: msqV2, - multiselectQuestions: [workInCityQuestion], - })), - await applicationFactory(), - ], - multiselectQuestions: [ - workInCityQuestion, - cityEmployeeQuestion, - veteransProgramQuestion, - ], - units: [ - { - ...defaultUnit, - numBedrooms: 0, - unitTypes: { connect: { id: unitTypes[0].id } }, - }, - { - ...defaultUnit, - numBedrooms: 0, - unitTypes: { connect: { id: unitTypes[5].id } }, - }, - { ...defaultUnit }, - { - ...defaultUnit, - numBedrooms: 2, - sqFeet: '1050.00', - unitTypes: { connect: { id: unitTypes[2].id } }, - }, - { - ...defaultUnit, - numBathrooms: 2, - numBedrooms: 3, - sqFeet: '1250.00', - unitTypes: { connect: { id: unitTypes[3].id } }, - }, - { - ...defaultUnit, - numBathrooms: 3, - numBedrooms: 4, - sqFeet: '1750.00', - unitTypes: { connect: { id: unitTypes[4].id } }, - }, - ], - userAccounts: [{ id: partnerUser.id }], - enableListingFeaturesAndUtilities: true, - }, ]; await seedListings(prismaClient, jurisdiction.id, listingsToCreate, amiChart); diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 88b1a9038ab..97d631f387d 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -3000,7 +3000,7 @@ export class ListingService implements OnModuleInit { }, ], }, - take: 100, + take: 500, }); if (!emailUsers.length) { From cf62a0097e5a9575eb0b816e79e536197cef52ab Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 16:08:08 -0700 Subject: [PATCH 33/38] fix: upping to 1k --- api/src/services/listing.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 97d631f387d..03fb60be649 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -3000,7 +3000,7 @@ export class ListingService implements OnModuleInit { }, ], }, - take: 500, + take: 1000, }); if (!emailUsers.length) { From 7756b22019b55be6bd0e0420a2f40dfdb17c784b Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 16:28:31 -0700 Subject: [PATCH 34/38] fix: upping to 2.5k --- api/src/services/listing.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 03fb60be649..f22f74344d3 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -3000,7 +3000,7 @@ export class ListingService implements OnModuleInit { }, ], }, - take: 1000, + take: 2500, }); if (!emailUsers.length) { From a9554f407ec0ad3981779757a3ca205f831b3831 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 16:44:07 -0700 Subject: [PATCH 35/38] fix: upping to 5k --- api/src/services/listing.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index f22f74344d3..375b3bd21f5 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -3000,7 +3000,7 @@ export class ListingService implements OnModuleInit { }, ], }, - take: 2500, + take: 5000, }); if (!emailUsers.length) { From 75236134fbafde713407b894e13af03883cf36f0 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 17:03:26 -0700 Subject: [PATCH 36/38] fix: upping to 7.5k --- api/src/services/email.service.ts | 3 ++- api/src/services/listing.service.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/api/src/services/email.service.ts b/api/src/services/email.service.ts index 74c6dfdd747..8181ea923cb 100644 --- a/api/src/services/email.service.ts +++ b/api/src/services/email.service.ts @@ -1161,7 +1161,8 @@ export class EmailService { if (!emails[language].length) { continue; } - + //TODO: remove + console.log('# of emails:', emails[language].length); void (await this.loadTranslations( jurisdiction, language as LanguagesEnum, diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 375b3bd21f5..59c7a080b41 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -3000,7 +3000,7 @@ export class ListingService implements OnModuleInit { }, ], }, - take: 5000, + take: 7500, }); if (!emailUsers.length) { From f931103e3364ff327f7beb6026a49e2c8cd14732 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Mon, 1 Jun 2026 17:39:01 -0700 Subject: [PATCH 37/38] fix: upping to 10k removing removables --- api/src/services/email.service.ts | 3 +-- api/src/services/listing.service.ts | 2 +- sites/partners/load-testing/headless-listing-save.js | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/api/src/services/email.service.ts b/api/src/services/email.service.ts index 8181ea923cb..74c6dfdd747 100644 --- a/api/src/services/email.service.ts +++ b/api/src/services/email.service.ts @@ -1161,8 +1161,7 @@ export class EmailService { if (!emails[language].length) { continue; } - //TODO: remove - console.log('# of emails:', emails[language].length); + void (await this.loadTranslations( jurisdiction, language as LanguagesEnum, diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 59c7a080b41..3f5d0ee0715 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -3000,7 +3000,7 @@ export class ListingService implements OnModuleInit { }, ], }, - take: 7500, + take: 10000, }); if (!emailUsers.length) { diff --git a/sites/partners/load-testing/headless-listing-save.js b/sites/partners/load-testing/headless-listing-save.js index ff5e39007e8..1c81558d372 100644 --- a/sites/partners/load-testing/headless-listing-save.js +++ b/sites/partners/load-testing/headless-listing-save.js @@ -63,7 +63,7 @@ export default function () { resp = http.request( "PUT", url, - `{"id":"d8842fca-6830-486f-80cc-85296a41847c","assets":[],"createdAt":"2026-06-01T06:15:26.738Z","updatedAt":"2026-06-01T06:50:23.921Z","additionalApplicationSubmissionNotes":null,"digitalApplication":true,"commonDigitalApplication":true,"paperApplication":false,"referralOpportunity":false,"accessibility":null,"amenities":null,"buildingTotalUnits":0,"developer":"Cielo Housing","listingFileNumber":null,"householdSizeMax":0,"householdSizeMin":0,"neighborhood":"North End","region":null,"configurableRegion":null,"petPolicy":null,"allowsDogs":null,"allowsCats":null,"smokingPolicy":null,"unitsAvailable":1,"unitAmenities":null,"servicesOffered":null,"yearBuilt":1900,"applicationDueDate":"2026-07-01T06:15:00.000Z","applicationOpenDate":"2026-05-31T06:15:25.104Z","applicationFee":"60","creditScreeningFee":null,"applicationOrganization":null,"applicationPickUpAddressOfficeHours":null,"applicationPickUpAddressType":null,"applicationDropOffAddressOfficeHours":null,"applicationDropOffAddressType":null,"applicationMailingAddressType":null,"buildingSelectionCriteria":null,"marketingFlyer":null,"accessibleMarketingFlyer":null,"cocInfo":null,"costsNotIncluded":null,"creditHistory":null,"criminalBackground":null,"depositMin":"0","depositMax":"50","depositType":null,"depositHelperText":"Deposit will not exceed one month's rent","disableUnitsAccordion":false,"hasHudEbllClearance":null,"leasingAgentEmail":"joe@smithrealty.com","leasingAgentName":"Joe Smith","leasingAgentOfficeHours":"9:00am - 5:00pm, Monday-Friday","leasingAgentPhone":"(773) 580-5897","leasingAgentTitle":"Senior Leasing Agent","managementWebsite":null,"name":"test notification listing","parkingFee":null,"parkType":null,"postmarkedApplicationsReceivedByDate":"2025-06-06T23:00:00.000Z","programRules":null,"rentalAssistance":"Housing Choice Vouchers, Section 8 and other valid rental assistance programs will be considered for this property. ","rentalHistory":null,"requiredDocuments":null,"requiredDocumentsList":null,"specialNotes":null,"waitlistCurrentSize":null,"waitlistMaxSize":null,"whatToExpect":"

Applicants will be contacted by the property agent in rank order until vacancies are filled. All of the information that you have provided will be verified and your eligibility confirmed. Your application will be removed from the waitlist if you have made any fraudulent statements. If we cannot verify a housing preference that you have claimed, you will not receive the preference but will not be otherwise penalized. Should your application be chosen, be prepared to fill out a more detailed application and provide required supporting documents.

","whatToExpectAdditionalText":null,"status":"active","reviewOrderType":"firstComeFirstServe","displayWaitlistSize":false,"reservedCommunityDescription":"Seniors over 55 are eligible for this property ","reservedCommunityMinAge":null,"resultLink":null,"isWaitlistOpen":false,"waitlistOpenSpots":null,"customMapPin":false,"contentUpdatedAt":"2026-06-01T06:38:31.303Z","publishedAt":"2026-06-01T06:19:08.419Z","scheduledPublishAt":null,"closedAt":null,"afsLastRunAt":"1970-01-01T00:00:00.000Z","lotteryLastPublishedAt":null,"lotteryLastRunAt":null,"lotteryStatus":null,"lastApplicationUpdateAt":"2026-06-01T06:50:23.919Z","listingMultiselectQuestions":[],"applicationMethods":[{"createdAt":"2026-06-01T06:38:31.306Z","updatedAt":"2026-06-01T06:38:31.306Z","id":"6eda6877-1d17-4451-8281-b3efadd00165","type":"Internal","label":null,"externalReference":null,"acceptsPostmarkedApplications":null,"phoneNumber":null,"paperApplications":[]}],"listingEvents":[],"listingsBuildingAddress":{"id":"a3f24b64-8e54-4a2d-aa3a-5026d3dee83e","placeName":"Yellowstone National Park","city":"Yellowstone National Park","county":"Teton","state":"WY","street":"3200 Old Faithful Inn Rd","zipCode":"82190","latitude":44.45995,"longitude":-110.831197},"listingsApplicationPickUpAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationDropOffAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationMailingAddress":{"placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsLeasingAgentAddress":{"id":"fb4715f2-224a-454b-8717-914d37097568","placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsMarketingFlyerFile":null,"listingsAccessibleMarketingFlyerFile":null,"jurisdictions":{"id":"3f0dbbe8-a84d-4158-bfc8-fd8e378d68dc","name":"Bloomington"},"listingsResult":null,"reservedCommunityTypes":null,"listingImages":[{"ordinal":0,"assets":{"createdAt":"2026-06-01T06:15:26.741Z","updatedAt":"2026-06-01T06:15:26.741Z","id":"ee118a51-3e74-40e8-bf35-9ed613ff62b2","fileId":"https://res.cloudinary.com/exygy/image/upload/w_1302,c_limit,q_65/dev/trayan-xIOYJSVEZ8c-unsplash_f1axsg.jpg","label":"cloudinaryBuilding"},"description":""}],"listingFeatures":{"accessibleHeightToilet":false,"accessibleParking":false,"acInUnit":false,"barrierFreeBathroom":false,"barrierFreeEntrance":false,"barrierFreePropertyEntrance":false,"barrierFreeUnitEntrance":true,"bathGrabBarsOrReinforcements":false,"bathroomCounterLowered":false,"brailleSignageInBuilding":false,"carbonMonoxideDetectorWithStrobe":false,"carpetInUnit":false,"elevator":true,"extraAudibleCarbonMonoxideDetector":false,"extraAudibleSmokeDetector":false,"fireSuppressionSprinklerSystem":false,"frontControlsDishwasher":false,"frontControlsStoveCookTop":false,"grabBars":true,"hardFlooringInUnit":false,"hearing":true,"hearingAndVision":false,"heatingInUnit":true,"inUnitWasherDryer":false,"kitchenCounterLowered":false,"laundryInBuilding":true,"leverHandlesOnDoors":false,"leverHandlesOnFaucets":false,"loweredCabinets":false,"loweredLightSwitch":false,"mobility":true,"noEntryStairs":false,"nonDigitalKitchenAppliances":false,"noStairsToParkingSpots":false,"noStairsWithinUnit":false,"parkingOnSite":true,"refrigeratorWithBottomDoorFreezer":false,"rollInShower":true,"serviceAnimalsAllowed":false,"smokeDetectorWithStrobe":false,"streetLevelEntrance":false,"toiletGrabBarsOrReinforcements":false,"ttyAmplifiedPhone":false,"turningCircleInBathrooms":false,"visual":false,"walkInShower":false,"wheelchairRamp":false,"wideDoorways":true},"listingUtilities":{"water":true,"gas":true,"trash":false,"sewer":true,"electricity":false,"cable":false,"phone":true,"internet":false},"units":[{"id":"4c129a57-c4d6-4d60-8cf6-83294f72d22b","amiChart":{"createdAt":"2026-06-01T06:15:26.383Z","updatedAt":"2026-06-01T06:15:26.383Z","id":"5e8aa82a-9ccb-4652-866b-0e5dabbc6001","name":"Noble Skyline - Bloomington"},"amiPercentage":"30","annualIncomeMin":null,"monthlyIncomeMin":"2000","floor":1,"annualIncomeMax":null,"maxOccupancy":3,"minOccupancy":1,"monthlyRent":"1200","numBathrooms":1,"numBedrooms":1,"number":"101","sqFeet":"750","monthlyRentAsPercentOfIncome":null,"bmrProgramChart":null,"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"unitRentTypes":null,"accessibilityPriorityType":null,"unitAmiChartOverrides":null}],"unitGroups":[],"unitsSummarized":{"unitTypes":[{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1}],"priorityTypes":[],"amiPercentages":["30"],"byUnitTypeAndRent":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}],"byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":0}],"byAMI":[{"percent":"30","byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}]}],"hmi":{"columns":{"sizeColumn":"listings.householdSize","maxIncomeMonth":"listings.maxIncomeMonth","maxIncomeYear":"listings.maxIncomeYear"},"rows":[{"sizeColumn":1,"maxIncomeMonth":"listings.monthlyIncome*income:$3,000.00","maxIncomeYear":"listings.annualIncome*income:$36,000"},{"sizeColumn":2,"maxIncomeMonth":"listings.monthlyIncome*income:$4,000.00","maxIncomeYear":"listings.annualIncome*income:$48,000"},{"sizeColumn":3,"maxIncomeMonth":"listings.monthlyIncome*income:$5,000.00","maxIncomeYear":"listings.annualIncome*income:$60,000"}]}},"urlSlug":"blue_sky_apartments_3200_old_faithful_inn_rd_yellowstone_national_park_wy","requestedChanges":null,"requestedChangesDate":"1970-01-01T07:00:00.000Z","lotteryOptIn":null,"includeCommunityDisclaimer":null,"communityDisclaimerTitle":null,"communityDisclaimerDescription":null,"marketingType":"marketing","marketingYear":null,"marketingSeason":null,"marketingMonth":null,"homeType":"apartment","isVerified":false,"section8Acceptance":false,"listingNeighborhoodAmenities":null,"lastUpdatedByUser":{"id":"2d272706-6d90-4457-839b-98fe00a0b464","name":"First Last"},"property":null,"showWaitlist":false,"configurableAccessibilityFeatures":["configurableAccessibilityFeatures.barrierFreeUnitEntrance","configurableAccessibilityFeatures.elevator","configurableAccessibilityFeatures.grabBars","configurableAccessibilityFeatures.hearing","configurableAccessibilityFeatures.heatingInUnit","configurableAccessibilityFeatures.laundryInBuilding","configurableAccessibilityFeatures.mobility","configurableAccessibilityFeatures.parkingOnSite","configurableAccessibilityFeatures.rollInShower","configurableAccessibilityFeatures.wideDoorways"],"mapPinPosition":"automatic","includeCommunityDisclaimerQuestion":null,"listingAvailabilityQuestion":"availableUnits","listingSection8Acceptance":"no","utilities":["water","gas","sewer","phone"],"reviewOrderQuestion":"reviewOrderFCFS","waitlistOpenQuestion":"no","digitalApplicationChoice":"yes","paperApplicationChoice":"no","referralOpportunityChoice":"no","canApplicationsBeMailedIn":"yes","canPaperApplicationsBePickedUp":"yes","canApplicationsBeDroppedOff":"yes","whereApplicationsMailedIn":"anotherAddress","whereApplicationsPickedUp":"anotherAddress","whereApplicationsDroppedOff":"anotherAddress","arePostmarksConsidered":"yes","postmarkByDateDateField":{"month":"06","day":"06","year":"2025"},"postmarkByDateTimeField":{"hours":"04","minutes":"00","period":"pm"},"applicationDueDateField":{"month":"06","day":"30","year":"2026"},"applicationDueTimeField":{"hours":"11","minutes":"15","period":"pm"},"commonDigitalApplicationChoice":"yes"}`, + `{"id":"d8842fca-6830-486f-80cc-85296a41847c","assets":[],"createdAt":"2026-06-01T06:15:26.738Z","updatedAt":"2026-06-01T06:50:23.921Z","additionalApplicationSubmissionNotes":null,"digitalApplication":true,"commonDigitalApplication":true,"paperApplication":false,"referralOpportunity":false,"accessibility":null,"amenities":null,"buildingTotalUnits":0,"developer":"Cielo Housing","listingFileNumber":null,"householdSizeMax":0,"householdSizeMin":0,"neighborhood":"North End","region":"Eastside","configurableRegion":null,"petPolicy":null,"allowsDogs":null,"allowsCats":null,"smokingPolicy":null,"unitsAvailable":1,"unitAmenities":null,"servicesOffered":null,"yearBuilt":1900,"applicationDueDate":"2026-07-01T06:15:00.000Z","applicationOpenDate":"2026-05-31T06:15:25.104Z","applicationFee":"60","creditScreeningFee":null,"applicationOrganization":null,"applicationPickUpAddressOfficeHours":null,"applicationPickUpAddressType":null,"applicationDropOffAddressOfficeHours":null,"applicationDropOffAddressType":null,"applicationMailingAddressType":null,"buildingSelectionCriteria":null,"marketingFlyer":null,"accessibleMarketingFlyer":null,"cocInfo":null,"costsNotIncluded":null,"creditHistory":null,"criminalBackground":null,"depositMin":"0","depositMax":"50","depositType":null,"depositHelperText":"Deposit will not exceed one month's rent","disableUnitsAccordion":false,"hasHudEbllClearance":null,"leasingAgentEmail":"joe@smithrealty.com","leasingAgentName":"Joe Smith","leasingAgentOfficeHours":"9:00am - 5:00pm, Monday-Friday","leasingAgentPhone":"(773) 580-5897","leasingAgentTitle":"Senior Leasing Agent","managementWebsite":null,"name":"test notification listing","parkingFee":null,"parkType":null,"postmarkedApplicationsReceivedByDate":"2025-06-06T23:00:00.000Z","programRules":null,"rentalAssistance":"Housing Choice Vouchers, Section 8 and other valid rental assistance programs will be considered for this property. ","rentalHistory":null,"requiredDocuments":null,"requiredDocumentsList":null,"specialNotes":null,"waitlistCurrentSize":null,"waitlistMaxSize":null,"whatToExpect":"

Applicants will be contacted by the property agent in rank order until vacancies are filled. All of the information that you have provided will be verified and your eligibility confirmed. Your application will be removed from the waitlist if you have made any fraudulent statements. If we cannot verify a housing preference that you have claimed, you will not receive the preference but will not be otherwise penalized. Should your application be chosen, be prepared to fill out a more detailed application and provide required supporting documents.

","whatToExpectAdditionalText":null,"status":"active","reviewOrderType":"firstComeFirstServe","displayWaitlistSize":false,"reservedCommunityDescription":"Seniors over 55 are eligible for this property ","reservedCommunityMinAge":null,"resultLink":null,"isWaitlistOpen":false,"waitlistOpenSpots":null,"customMapPin":false,"contentUpdatedAt":"2026-06-01T06:38:31.303Z","publishedAt":"2026-06-01T06:19:08.419Z","scheduledPublishAt":null,"closedAt":null,"afsLastRunAt":"1970-01-01T00:00:00.000Z","lotteryLastPublishedAt":null,"lotteryLastRunAt":null,"lotteryStatus":null,"lastApplicationUpdateAt":"2026-06-01T06:50:23.919Z","listingMultiselectQuestions":[],"applicationMethods":[{"createdAt":"2026-06-01T06:38:31.306Z","updatedAt":"2026-06-01T06:38:31.306Z","id":"6eda6877-1d17-4451-8281-b3efadd00165","type":"Internal","label":null,"externalReference":null,"acceptsPostmarkedApplications":null,"phoneNumber":null,"paperApplications":[]}],"listingEvents":[],"listingsBuildingAddress":{"id":"a3f24b64-8e54-4a2d-aa3a-5026d3dee83e","placeName":"Yellowstone National Park","city":"Yellowstone National Park","county":"Teton","state":"WY","street":"3200 Old Faithful Inn Rd","zipCode":"82190","latitude":44.45995,"longitude":-110.831197},"listingsApplicationPickUpAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationDropOffAddress":{"placeName":"Yosemite National Park","city":"Yosemite Valley","county":"Mariposa","state":"CA","street":"9035 Village Dr","zipCode":"95389","latitude":37.7487501,"longitude":-119.5920354},"listingsApplicationMailingAddress":{"placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsLeasingAgentAddress":{"id":"fb4715f2-224a-454b-8717-914d37097568","placeName":"Rocky Mountain National Park","city":"Estes Park","county":"Larimer","state":"CO","street":"1000 US-36","zipCode":"80517","latitude":40.3800984,"longitude":-105.5709864},"listingsMarketingFlyerFile":null,"listingsAccessibleMarketingFlyerFile":null,"jurisdictions":{"id":"3f0dbbe8-a84d-4158-bfc8-fd8e378d68dc","name":"Bloomington"},"listingsResult":null,"reservedCommunityTypes":null,"listingImages":[{"ordinal":0,"assets":{"createdAt":"2026-06-01T06:15:26.741Z","updatedAt":"2026-06-01T06:15:26.741Z","id":"ee118a51-3e74-40e8-bf35-9ed613ff62b2","fileId":"https://res.cloudinary.com/exygy/image/upload/w_1302,c_limit,q_65/dev/trayan-xIOYJSVEZ8c-unsplash_f1axsg.jpg","label":"cloudinaryBuilding"},"description":""}],"listingFeatures":{"accessibleHeightToilet":false,"accessibleParking":false,"acInUnit":false,"barrierFreeBathroom":false,"barrierFreeEntrance":false,"barrierFreePropertyEntrance":false,"barrierFreeUnitEntrance":true,"bathGrabBarsOrReinforcements":false,"bathroomCounterLowered":false,"brailleSignageInBuilding":false,"carbonMonoxideDetectorWithStrobe":false,"carpetInUnit":false,"elevator":true,"extraAudibleCarbonMonoxideDetector":false,"extraAudibleSmokeDetector":false,"fireSuppressionSprinklerSystem":false,"frontControlsDishwasher":false,"frontControlsStoveCookTop":false,"grabBars":true,"hardFlooringInUnit":false,"hearing":true,"hearingAndVision":false,"heatingInUnit":true,"inUnitWasherDryer":false,"kitchenCounterLowered":false,"laundryInBuilding":true,"leverHandlesOnDoors":false,"leverHandlesOnFaucets":false,"loweredCabinets":false,"loweredLightSwitch":false,"mobility":true,"noEntryStairs":false,"nonDigitalKitchenAppliances":false,"noStairsToParkingSpots":false,"noStairsWithinUnit":false,"parkingOnSite":true,"refrigeratorWithBottomDoorFreezer":false,"rollInShower":true,"serviceAnimalsAllowed":false,"smokeDetectorWithStrobe":false,"streetLevelEntrance":false,"toiletGrabBarsOrReinforcements":false,"ttyAmplifiedPhone":false,"turningCircleInBathrooms":false,"visual":false,"walkInShower":false,"wheelchairRamp":false,"wideDoorways":true},"listingUtilities":{"water":true,"gas":true,"trash":false,"sewer":true,"electricity":false,"cable":false,"phone":true,"internet":false},"units":[{"id":"4c129a57-c4d6-4d60-8cf6-83294f72d22b","amiChart":{"createdAt":"2026-06-01T06:15:26.383Z","updatedAt":"2026-06-01T06:15:26.383Z","id":"5e8aa82a-9ccb-4652-866b-0e5dabbc6001","name":"Noble Skyline - Bloomington"},"amiPercentage":"30","annualIncomeMin":null,"monthlyIncomeMin":"2000","floor":1,"annualIncomeMax":null,"maxOccupancy":3,"minOccupancy":1,"monthlyRent":"1200","numBathrooms":1,"numBedrooms":1,"number":"101","sqFeet":"750","monthlyRentAsPercentOfIncome":null,"bmrProgramChart":null,"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"unitRentTypes":null,"accessibilityPriorityType":null,"unitAmiChartOverrides":null}],"unitGroups":[],"unitsSummarized":{"unitTypes":[{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1}],"priorityTypes":[],"amiPercentages":["30"],"byUnitTypeAndRent":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}],"byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":0}],"byAMI":[{"percent":"30","byUnitType":[{"areaRange":{"min":750,"max":750},"minIncomeRange":{"min":"$2,000","max":"$2,000"},"occupancyRange":{"min":1,"max":3},"rentRange":{"min":"$1,200","max":"$1,200"},"rentAsPercentIncomeRange":{"min":null,"max":null},"floorRange":{"min":1,"max":1},"unitTypes":{"createdAt":"2026-06-01T06:15:26.266Z","updatedAt":"2026-06-01T06:15:26.266Z","id":"d18d6ef2-4bea-462f-a10c-3a7c4135054d","name":"oneBdrm","numBedrooms":1},"totalAvailable":1}]}],"hmi":{"columns":{"sizeColumn":"listings.householdSize","maxIncomeMonth":"listings.maxIncomeMonth","maxIncomeYear":"listings.maxIncomeYear"},"rows":[{"sizeColumn":1,"maxIncomeMonth":"listings.monthlyIncome*income:$3,000.00","maxIncomeYear":"listings.annualIncome*income:$36,000"},{"sizeColumn":2,"maxIncomeMonth":"listings.monthlyIncome*income:$4,000.00","maxIncomeYear":"listings.annualIncome*income:$48,000"},{"sizeColumn":3,"maxIncomeMonth":"listings.monthlyIncome*income:$5,000.00","maxIncomeYear":"listings.annualIncome*income:$60,000"}]}},"urlSlug":"blue_sky_apartments_3200_old_faithful_inn_rd_yellowstone_national_park_wy","requestedChanges":null,"requestedChangesDate":"1970-01-01T07:00:00.000Z","lotteryOptIn":null,"includeCommunityDisclaimer":null,"communityDisclaimerTitle":null,"communityDisclaimerDescription":null,"marketingType":"marketing","marketingYear":null,"marketingSeason":null,"marketingMonth":null,"homeType":"apartment","isVerified":false,"section8Acceptance":false,"listingNeighborhoodAmenities":null,"lastUpdatedByUser":{"id":"2d272706-6d90-4457-839b-98fe00a0b464","name":"First Last"},"property":null,"showWaitlist":false,"configurableAccessibilityFeatures":["configurableAccessibilityFeatures.barrierFreeUnitEntrance","configurableAccessibilityFeatures.elevator","configurableAccessibilityFeatures.grabBars","configurableAccessibilityFeatures.hearing","configurableAccessibilityFeatures.heatingInUnit","configurableAccessibilityFeatures.laundryInBuilding","configurableAccessibilityFeatures.mobility","configurableAccessibilityFeatures.parkingOnSite","configurableAccessibilityFeatures.rollInShower","configurableAccessibilityFeatures.wideDoorways"],"mapPinPosition":"automatic","includeCommunityDisclaimerQuestion":null,"listingAvailabilityQuestion":"availableUnits","listingSection8Acceptance":"no","utilities":["water","gas","sewer","phone"],"reviewOrderQuestion":"reviewOrderFCFS","waitlistOpenQuestion":"no","digitalApplicationChoice":"yes","paperApplicationChoice":"no","referralOpportunityChoice":"no","canApplicationsBeMailedIn":"yes","canPaperApplicationsBePickedUp":"yes","canApplicationsBeDroppedOff":"yes","whereApplicationsMailedIn":"anotherAddress","whereApplicationsPickedUp":"anotherAddress","whereApplicationsDroppedOff":"anotherAddress","arePostmarksConsidered":"yes","postmarkByDateDateField":{"month":"06","day":"06","year":"2025"},"postmarkByDateTimeField":{"hours":"04","minutes":"00","period":"pm"},"applicationDueDateField":{"month":"06","day":"30","year":"2026"},"applicationDueTimeField":{"hours":"11","minutes":"15","period":"pm"},"commonDigitalApplicationChoice":"yes"}`, params ) From 2ba06e5f5514832e26f4d4fcc11ae6b9d07c5234 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Tue, 2 Jun 2026 09:48:43 -0700 Subject: [PATCH 38/38] fix: removing limit --- api/src/services/listing.service.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index 3f5d0ee0715..56048fdce03 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -3000,7 +3000,6 @@ export class ListingService implements OnModuleInit { }, ], }, - take: 10000, }); if (!emailUsers.length) {