- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117) - AppNav, ListingCard, SearchView with filters/sort, composables (useSnipeMode, useKonamiCode, useMotion), Pinia search store - Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue - docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve) - compose.yml: api (8510) + web (8509) services - Dockerfile CMD updated to uvicorn for upcoming FastAPI layer - Clean build: 0 TS errors, 380 modules
31 lines
525 B
JavaScript
31 lines
525 B
JavaScript
var through = require("through")
|
|
var test = require("tape")
|
|
|
|
var duplex = require("../index")
|
|
|
|
var readable = through()
|
|
var writable = through(write)
|
|
var written = 0
|
|
var data = 0
|
|
|
|
var stream = duplex(writable, readable)
|
|
|
|
function write() {
|
|
written++
|
|
}
|
|
|
|
stream.on("data", ondata)
|
|
|
|
function ondata() {
|
|
data++
|
|
}
|
|
|
|
test("emit and write", function(t) {
|
|
t.plan(2)
|
|
|
|
stream.write()
|
|
readable.emit("data")
|
|
|
|
t.equal(written, 1, "should have written once")
|
|
t.equal(data, 1, "should have received once")
|
|
})
|