60e2149072
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.
69 lines
1.6 KiB
Markdown
69 lines
1.6 KiB
Markdown
# mute-stream
|
|
|
|
Bytes go in, but they don't come out (when muted).
|
|
|
|
This is a basic pass-through stream, but when muted, the bytes are
|
|
silently dropped, rather than being passed through.
|
|
|
|
## Usage
|
|
|
|
```javascript
|
|
const MuteStream = require('mute-stream')
|
|
|
|
const ms = new MuteStream(options)
|
|
|
|
ms.pipe(process.stdout)
|
|
ms.write('foo') // writes 'foo' to stdout
|
|
ms.mute()
|
|
ms.write('bar') // does not write 'bar'
|
|
ms.unmute()
|
|
ms.write('baz') // writes 'baz' to stdout
|
|
|
|
// can also be used to mute incoming data
|
|
const ms = new MuteStream()
|
|
input.pipe(ms)
|
|
|
|
ms.on('data', function (c) {
|
|
console.log('data: ' + c)
|
|
})
|
|
|
|
input.emit('data', 'foo') // logs 'foo'
|
|
ms.mute()
|
|
input.emit('data', 'bar') // does not log 'bar'
|
|
ms.unmute()
|
|
input.emit('data', 'baz') // logs 'baz'
|
|
```
|
|
|
|
## Options
|
|
|
|
All options are optional.
|
|
|
|
* `replace` Set to a string to replace each character with the
|
|
specified string when muted. (So you can show `****` instead of the
|
|
password, for example.)
|
|
|
|
* `prompt` If you are using a replacement char, and also using a
|
|
prompt with a readline stream (as for a `Password: *****` input),
|
|
then specify what the prompt is so that backspace will work
|
|
properly. Otherwise, pressing backspace will overwrite the prompt
|
|
with the replacement character, which is weird.
|
|
|
|
## ms.mute()
|
|
|
|
Set `muted` to `true`. Turns `.write()` into a no-op.
|
|
|
|
## ms.unmute()
|
|
|
|
Set `muted` to `false`
|
|
|
|
## ms.isTTY
|
|
|
|
True if the pipe destination is a TTY, or if the incoming pipe source is
|
|
a TTY.
|
|
|
|
## Other stream methods...
|
|
|
|
The other standard readable and writable stream methods are all
|
|
available. The MuteStream object acts as a facade to its pipe source
|
|
and destination.
|