Tester Walkthrough — MEC Hotels

Updated: 2026-09-21 14:02 ET · Written from the code and the live getmecairports payload; screenshots are still to be captured on a simulator (each check notes the file to add). Verify the steps against a UAL member on the MEC page.

TLDR: The MEC Hotels directory lists crew hotels grouped by airport. One search field, pinned above the list, filters as you type on an airport's code, an airport's name, or a hotel's name. Tapping a hotel opens its detail page (address with a map link, phone, email, website, shuttle, amenities), and hotels can be favorited. Placeholder rows that aren't a bookable hotel (a lounge note, "No ALPA approved hotels") show status text and have no heart. Which hotels you see depends on your MEC — the backend trims the list.

Before you start

Checks

1 · The directory loads, grouped by airport

Steps: Open the directory from the path above. Scroll the list.

Screenshot to add: screen-assets/mh1-directory.png — search field on top, first airport section below it.

What you should see: A search field ("Search airport or hotel…") directly under the title bar, then airport sections in alphabetical order of airport code. Each section has a header — a navy bar reading CODE · Airport Name (for example ABQ · Albuquerque International Sunport) — followed by that airport's hotels, each showing the hotel name and a one-line address. The search field stays put while you scroll the list; only the rows move.

Something's wrong if: The list is empty while you are signed in, the search field scrolls away with the rows, or a section header appears with no rows under it.
Spacing: the first header should sit close under the search field. A large empty band between them is a layout defect — flag it with a screenshot.

2 · Search by airport code

Steps: Tap the search field and type ORD (any case).

Screenshot to add: screen-assets/mh2-search-code.png

What you should see: The list narrows as you type, and once the three letters are an exact airport code, Chicago O'Hare's section jumps to the top and shows in full — every hotel under it. Below it you will still see any other airport whose name, or any hotel whose name, contains those letters: for example GRR · Gerald R Ford International (its name contains "ord") and the Hartford Marriott Downtown hotel under BDL. Those keep their normal alphabetical order underneath. That is the rule working, not a leak.

The same "exact match goes first" rule applies to an exact airport name and to an exact hotel name (its airport moves to the top). A partial match — say or — does not reorder anything.

Something's wrong if: Nothing filters while you type, the airport whose code you typed is not first, an unrelated airport with no match anywhere in its code, name, or hotel names stays on screen, or a section header remains after all its rows are gone.
Short codes that are also words: typing INT or SAN puts that airport first, followed by every airport with "int" or "san" in its name. Keep typing (san f) to narrow further. That is expected.

3 · Search by airport name — the whole airport stays

Steps: Clear the field, then type albuq.

Screenshot to add: screen-assets/mh3-search-airport-name.png

What you should see: The ABQ section only, with all of its rows — including the lounge placeholder row — because the airport itself matched. A partial name works; you don't need the full name.

Something's wrong if: Only some of ABQ's hotels show, or the airport does not appear at all.

4 · Search by hotel name — only matching hotels stay

Steps: Clear the field, then type sheraton.

Screenshot to add: screen-assets/mh4-search-hotel-name.png

What you should see: Only hotels with "sheraton" in the name, each still under its own airport header. Airports with no matching hotel disappear entirely, and a sibling hotel at the same airport that doesn't match is hidden.

Something's wrong if: Non-matching hotels from the same airport still show, or an airport with no Sheraton keeps its header.
Not searched: street addresses and cities. A query like "Chicago" matches an airport name containing it, not a hotel address.

5 · No matches, and clearing

Steps: Type zzzz. Then tap the ✕ at the right end of the field.

Screenshot to add: screen-assets/mh5-no-matches.png

What you should see: With zzzz, every section and row disappears and a line under the field reads No airports or hotels match "zzzz". The field itself stays on screen. Tapping ✕ empties the field and the whole list comes back in its original alphabetical order — including after a search such as ORD that had moved an airport to the top. (The ✕ only shows while there is text.)

Something's wrong if: The field vanishes with the results, the empty-state line doesn't appear, the full list doesn't return after clearing, or the airport you searched for is still stuck at the top.

6 · Hotel detail page

Steps: Clear the search. Open a hotel with a full record — for example Hyatt Regency Airport (SFO), then go back and open Padre Hotel (BFL).

Screenshot to add: screen-assets/mh6-detail.png

What you should see: The hotel's name in the title bar and its address as a tappable link. Below it, action chips for each contact method the record has:

Then sections for Shuttle Service and Amenities when the record has them. Tapping the address opens your maps app on the hotel — by its coordinates when the record has them, otherwise by an address search.

Something's wrong if: A phone number shown in the record has no tappable chip, the SFO website link does nothing, or a hotel opened from the list shows "Couldn't find that hotel."

7 · Favoriting, and rows with no heart

Steps: Tap the heart on a hotel row. Open Favorites from the app's favorites entry, find the hotel, then remove it there. Back in the directory, look at the LOUNGE — NO SUITABLE LOUNGE FACILITY row at any airport, and the General Notices (AAA) row at the top.

Screenshot to add: screen-assets/mh7-favorites.png

What you should see: A real hotel's heart fills when tapped and the hotel appears in Favorites (removing it there clears the heart in the directory). Placeholder rows — lounge notes, "No ALPA approved hotels", "14 hour exception city" markers — show their text as a small status pill and have no heart. The General Notices (AAA) row is the exception: it is MEC-wide reference content, so it does have a heart.

Something's wrong if: A lounge/placeholder row has a heart, the General Notices row doesn't, or a favorited hotel is missing from Favorites while a search is typed in the directory (Favorites must not be affected by directory search).

8 · Search resets on sign-out

Steps: In the directory, type ADL. Sign out, then sign in as a member of a different MEC and open the directory again.

What you should see: The search field is empty and the full list is showing for the new member. The first member's typed text must never hide rows for the second (this is the bug the reset exists to prevent — before it, a filter left by one member could leave the next member with an empty list).

Something's wrong if: The old text is still in the field, or the new member sees an empty or partly hidden list they didn't filter.
Needs two accounts in different MECs. If you only have one, skip this check and note it as not run.

What's already covered by automated tests

These are unit tests (they run with dotnet test UnitTest/UnitTest.csproj), so a regression in the rules should be caught before it reaches you. There is no UI-suite (Appium) test for the hotel directory yet — everything on screen is checked by hand:

What this checks, overall

That a UAL member can find a hotel by airport code, airport name or hotel name; that the field stays pinned and clears cleanly; that every contact method on a hotel's detail page works; that only real hotels can be favorited; and that one member's search can't leak to the next.

What's not covered yet