Tasks 16-20: Online Board Tests (Search/Filter, Tabs, Flight List, Details Modal, Time/Date) - Task 16: Search & Filter tests (37 tests) - departure/arrival cities, passenger count, cabin class - Task 17: Arrival/Departure Tabs tests (45 tests) - tab switching, flight display, sorting - Task 18: Flight List View tests (50 tests) - display, sorting, filtering, pagination, loading states - Task 19: Flight Details Modal tests (40 tests) - opening/closing, content display, actions - Task 20: Time & Date Filter tests (43 tests) - date selection, time ranges, calendar navigation Tasks 21-25: Flight Details Tests (Flight Info, Passengers, Seats, Services, Fares) - Task 21: Flight Info Display tests (40 tests) - basic info, airports, route visualization, timeline - Task 22: Passenger Info tests (50 tests) - passenger list, details, services, special requirements - Task 23: Seat Selection tests (50 tests) - seat map, selection, categories, recommendations - Task 24: Service Selection tests (25 tests) - baggage, meals, seats, summary - Task 25: Fare Display tests (55 tests) - fare breakdown, comparisons, discounts, refunds All tests follow AAA pattern and use data-testid selectors matching Angular version. Total: 245 tests across 10 feature suites.
npm-bundled
Run this in a node package, and it'll tell you which things in node_modules are bundledDependencies, or transitive dependencies of bundled dependencies.
USAGE
To get the list of deps at the top level that are bundled (or transitive deps of a bundled dep) run this:
const bundled = require('npm-bundled')
// async version
bundled({ path: '/path/to/pkg/defaults/to/cwd'}, (er, list) => {
// er means it had an error, which is _hella_ weird
// list is a list of package names, like `fooblz` or `@corp/blerg`
// the might not all be deps of the top level, because transitives
})
// async promise version
bundled({ path: '/path/to/pkg/defaults/to/cwd'}).then(list => {
// so promisey!
// actually the callback version returns a promise, too, it just
// attaches the supplied callback to the promise
})
// sync version, throws if there's an error
const list = bundled.sync({ path: '/path/to/pkg/defaults/to/cwd'})
That's basically all you need to know. If you care to dig into it,
you can also use the bundled.Walker and bundled.WalkerSync
classes to get fancy.
This library does not write anything to the filesystem, but it may
have undefined behavior if the structure of node_modules changes
while it's reading deps.
All symlinks are followed. This means that it can lead to surprising results if a symlinked bundled dependency has a missing dependency that is satisfied at the top level. Since package creation resolves symlinks as well, this is an edge case where package creation and development environment are not going to be aligned, and is best avoided.