Commit Graph

1313 Commits

Author SHA1 Message Date
Colin McDonnell
0ec70119f2 Add types for mocks 2023-06-09 16:44:29 -07:00
Jarred Sumner
bf518222d4 Implement mocks in bun:test (#3252)
* wip

* wip

* most of the code for mocks in bun:test

* finishing up

* Implement `toHaveBeenCalled` and `toHaveBeenCalledTimes(1)`

* Test

* visit

* results, not returnValues

* exact

* Update jest.zig

* A couple more tests

* Add jest.fn

* support resetting mocks

* Implement spyOn

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-09 16:38:06 -07:00
dave caruso
870e5ac1dc improve stream types (#3240) 2023-06-07 14:45:14 -07:00
Jarred Sumner
7e296a1adc [breaking][bun:sqlite] .values() returns [] instead of null for queries returning 0 results (#3219)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-06 23:52:23 -07:00
Colin McDonnell
d265ed80d2 Docs for Bun.password and ws publish (#3227)
* Update websocket docs & jsdoc

* Document Bun.password

* Update hash encoding docs

* Fix typos

* Add info about user-specific data in ws

* Update outdated websocket jsdoc

* Replace usages of req.url

* Remove log
2023-06-06 23:50:43 -07:00
Colin McDonnell
bcd67c3455 Bun.passwordSync -> Bun.password.{method}Sync (#3228)
* Bun.passwordSync -> Bun.password.{method}Sync

* Update jsdoc

* Updates
2023-06-06 23:44:40 -07:00
Jarred Sumner
9b996e702e Implement Bun.password and Bun.passwordSync (#3204)
* Implement `Bun.password.{verify, hash}` and `Bun.passwordSync.{verify, hash}`

* flip the booleans

* delete unused

* Add `cost` for `"bcrypt"`, add `"memoryCost"` and `"timeCost'` for argon2, use SHA512

* Update bun.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-04 18:20:04 -07:00
dave caruso
f798a0cfe8 fix readableStreamToArrayBuffer (#3181)
* fix discord.js again

* remove one of the async hooks warnings

* clarify hardcoded modules docs
2023-06-02 19:03:16 -07:00
Colin McDonnell
c4f237572d Update macro/test docs (#3180)
* Add test and fix plugin type

* Update docs and config pages
2023-06-02 17:43:51 -07:00
Colin McDonnell
1f7d62bfd5 Support NodeJS.ProcessEnv 2023-06-02 12:49:31 -07:00
Jozef Steinhübl
4d1c900cac types: expose Bun.Env (#3111)
* expose Bun.Env

* export bun.Env

* fix: use import instead namespace access

* fix(child_process): use import

* tests(env): use module instead namespace
2023-06-02 12:48:19 -07:00
dave caruso
42d8b7183c random fixes that help vite/sveltekit (#3140)
* existsSync with invalid paths should return false

* partially support file urls (does not do percent encoding)

* add utf16 support for Path.isAbsoluteString

* Update src/resolver/resolver.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* fixups

* revert

* prettier format

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-06-01 16:48:37 -07:00
Ashcon Partovi
e632941c52 Small improvements to bun test (#3071)
* Change status icon for skipped tests from "-" to "»"

* Show file path instead of filename in `bun test`

* Emit collapsable logs when running `bun test` in Github Actions

https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines

* Add fallback for test icons when emojis are not available

* Only check for GITHUB_ACTIONS when running `bun test`

* Emit error annotations when running `bun test` in Github Actions

https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-error-message

* Remove ANSI output from Github annotation, it doesn't work

* Remove outdated code from internal test runner

* Add GithubActionFormatter to handle cases where error name or message is already ANSI

* Fix formatting of test

* Fix #3070

* Implement `bun test --run-todo`

By default, `test.todo()` is no longer run, unless `--run-todo` is specified.

* Fix test that relies on test.todo() being run

* Support vitest-style test options

* Disable GITHUB_ACTION in test harness

* Add types for TestOptions

* Fix bug where test.skip() actually ran

* Implement `test.skipIf()` and `describe.skipIf()`

* Implement `test.runIf()`

* Move DiffFormatter to its own file

* Fix bug where Bun.inspect() would emit a Github annotation

* Introduce `bun test --only`, rename `--run-todo` to `--todo`

* Implement `test.if()`, `describe.if()`, and other test fixes

* Remove unwanted files from last commit

* Fix last reference to --run-todo

* Fix memory issues with printing github actions text

* Update bindings.zig

* Fix bug with `test.only()`

* Remove debug test

* Make the github annotations better

* Improve .vscode/launch.json

* Implement `expect().toBeNil()`

* Remove .only() from test

* Implement toBeBoolean(), toBeTrue(), toBeFalse()

* Add lots of matchers
* toBeNil()
* toBeBoolean()
* toBeTrue()
* toBeFalse()
* toBeNumber()
* toBeInteger()
* toBeFinite()
* toBePositive()
* toBeNegative()
* toBeWithin()
* toBeSymbol()
* toBeFunction()
* toBeDate()
* toBeString()
* toInclude()
* toStartWith()
* toEndWith()

* Fix #3135

* Reduce verbosity of test

* Fix snapshot bug

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-31 23:12:04 -07:00
Colin McDonnell
176fade220 Remove bun-macro-relay and update docs (#3145)
* Update macro docs

* Remove bun-macro-relay
2023-05-31 19:51:08 -07:00
Colin McDonnell
9b6913e1a6 More/better docs for JSX, utils, binary data, streams, hashing, bun test, Bun.serve (#3005)
* WIP

* Updates

* Document deepEquals

* WIP

* Update typeS

* Update TLS docs for Bun.serve

* Update types for tls

* Draft binary data page. Add Streams page.

* Update test runner docs

* Add hashing, flesh out utils

* Grammar

* Update types

* Fix

* Add import.meta docs

* Tee
2023-05-29 11:49:51 -07:00
Ashcon Partovi
1a30b4fe29 Implement expect().toBeEmpty() (#3060)
* Implement `expect().toBeEmpty()`

* Fix formatting on test

* Finish up expect().toBeEmpty()

* Update expect.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-26 19:24:20 -07:00
Ciro Spaciari
ed1f62ffff [server.fetch] call when using Request object (#3051)
* patch server.fetch

* add tests and fix types
2023-05-24 18:52:13 -07:00
Ashcon Partovi
2a669a657a Support test.todo() in ecosystem runner 2023-05-23 13:39:58 -07:00
Jarred Sumner
5b38c55c3d Support setting a timezone with process.env.TZ and Bun.env.TZ (#3018)
* Support setting a timezone via `process.env.TZ`

* Implement `setTimeZone` in `bun:jsc` module

* [breaking] `bun:test` now defaults to `Etc/UTC` timezone

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-23 00:40:12 -07:00
dave caruso
e5501551f4 add some connect test and type changes (#3013) 2023-05-22 19:48:07 -07:00
dave caruso
fc40c690ea Write out builtins with TypeScript + Minify them (#2999)
* start work drafting how builtins will work

* work on ts builtin

* builtins stuff so far

* builtins

* done for today

* continue work

* working on it

* bindings so far

* well, it builds. doesnt run

* IT RUNS

* still lots of ts errors but it is functional

* sloppy mode
2023-05-22 18:51:05 -07:00
Jarred Sumner
82e762fe2f [breaking] ServerWebSocket.publish no longer publishes to self by default
This changes `publishToSelf` to be `false` by default instead of `true`.

This is a breaking change because it means that `ws.publish("foo", "bar")` will exclude `ws` from the list of websockets to broadcast.

We are making this change because many people asked for this and were confused by the status quo - that `w.publish` publishes to self.
2023-05-22 12:29:10 -07:00
Jarred Sumner
a5acf7bfa0 [ServerWebSocket] binaryType now defaults to "nodebuffer"
Previously, this defaulted to "uint8array", so this shouldn't be a breaking change unless you make use of `.slice()` in which case it will now be a reference to the same ArrayBuffer rather than a clone.

The rationale for this change is most usages of Uint8Array on the server need a little more than just the bytes. Many npm packages expect Buffer rather than Uint8Array. Directly returning it for binary websocket messages is faster than creating another one.
2023-05-22 11:46:39 -07:00
Jarred Sumner
d90f7c7bf6 [Bun.serve] Support "nodebuffer" binaryType in ServerWebSocket 2023-05-21 19:20:40 -07:00
Jarred Sumner
91c9bd9dcc [WebSocket] Implement "nodebuffer" binaryType 2023-05-21 18:34:00 -07:00
Jarred Sumner
9834cba762 Add node:vm types 2023-05-21 12:41:15 -07:00
Ciro Spaciari
3870f674f9 fix(tls.connect) fix SNI on tls sockets and also servername (mongodb) (#2934)
* fixes SNI on tls sockets and also servername

* 💅

* 💅

* add support for https and wss

* fix bun types

* support Bun.file on ca, key and cert

* 💅

* add setTimeout (makes fastify run)

* fix httpVersion

* fix WebSocketServer and add listen event

* fix ws exports and http listening

* fix default import

* bump uws

* add nodebuffer compatibility

* fix drain and allow more passing tests to run

* fix enqueud messages

* default to arraybuffer

* fix constructor binaryType

* fmt

* fixup

* skip some tests

* skip more

* skip fault tests

* reuse encoder instance

* fix handshake WS Client

* temporary revert handshake fix

* fix handshake

* disable all socket.io test temp

* fixup

* add back socket.io tests

* use node_fs to read cert, ca and key on server.zig

* throw the error returned by NodeFS

* 💅
2023-05-21 09:50:53 -07:00
Jarred Sumner
db062a7c30 [bun:jsc] Rewrite describe -> jscDescribe to not confuse them in autocomplete 2023-05-20 22:56:53 -07:00
Degreat
0e97f91f9f Implement test.todo (#2961)
* Implement `test.todo`

* remove skip condition

* Allow callbacks in .todo

* Add descriptive comment

* Log todos

* Include tests in title

* edit test.todo tests

---------

Co-authored-by: dave caruso <me@paperdave.net>
2023-05-20 22:03:55 -04:00
Jarred Sumner
7cf674a253 Support test timeouts in bun:test (#2969)
* [bun:test] Support timeouts in `test`

* make this test more resilient

* ✂️

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-20 17:04:51 -07:00
Degreat
228ca3269a Implement expect().toBeCloseTo() (#2870) 2023-05-18 11:32:31 -07:00
Bryce Kalow
fb7fb0a537 fix: bun-plugin-server-components name (#2919) 2023-05-17 11:04:40 -07:00
Colin McDonnell
366eba78f0 Tweaks to bundler docs (#2867)
* WIP

* Fix typo

* Updates

* Document --compile

* Add bundler benchmark

* Remove esbuild

* Add bench to docs

* Add buttons

* Updates
2023-05-16 10:47:00 -07:00
Colin McDonnell
a52715597a Add plugins for yaml & RSC (#2888)
* WIP

* WIP

* Add yaml plugin

* Publish v0.0.1

* Updates

* Start RSC plugin - not finished

* Add readme

* Updates

* Add shell dirs for a few other plugins
2023-05-15 20:37:03 -07:00
dave caruso
dfd0f3e252 Allow reading config from within plugins, and partially implement esbuild initialOptions (#2861)
* Implement plugin build.config and initialOptions

* update types

* default initialoptions entrypoints
2023-05-11 22:58:41 -04:00
dave caruso
6a163cf933 bundler tests and improve Bun.build return type (#2833)
* importstar_ts

* tests

* run acorn test suite

* bench tweaks

* test

* bun.build tests very incomplete

* remove dataurl and base64 loaders from tests since they dont work yet

* tests

* stuff

* stuff

* add errors and array of blobs

* work so far

* docs

* requested changes

* fix overwrite docs

* remove this file
2023-05-11 14:42:54 -07:00
Degreat
4b79b37a99 Implement describe.skip (#2836)
* Implement describe.skip

* Add more tests to cover hooks
2023-05-10 23:57:30 -07:00
Jarred Sumner
5b2c3fe440 clarify the types more 2023-05-10 05:08:22 -07:00
Jarred Sumner
982dc0b441 Implement BuildArtifact 2023-05-10 04:21:53 -07:00
dave caruso
5e366872f6 implement build api define and loaders (#2805)
* parse error logs

* clean up types

* remove --jsx-production. use NODE_ENV instead

* add define to js api

* add loaders to js api

* fixups

* sourcemap

* typo fix

* remove label, comment dir just for now

* test tweaks

* test work

* make optional enums actually optional.
allows `sourcemap: undefined`

* overload host ram test

* string tests

* tests

* test for 2815

* requested changes

* sort this list

* remove this test file now that it passes

* oops

* add --format

* finish ts tests

* doc typos related to define and loader
2023-05-08 21:55:21 -07:00
Jarred Sumner
31cb49a026 [ci] Fix broken test runner
cc @Electroid we need `@actions/core` to be installed in node_modules
2023-05-05 18:34:43 -07:00
Colin McDonnell
386639a4c5 Start esbuild migration guide. More docs. (#2787)
* Bundler docs updates. Start esbuild migration guide.

* Updates

* Add JS API comp

* Tweaks

* Updates

* Updates

* Updates
2023-05-05 12:53:38 -07:00
Ashcon Partovi
a66137bdce Actually fix the git clone URL 2023-05-04 15:36:56 -07:00
Ashcon Partovi
b2abf82494 Use HTTPS instead of SSH for git clone in ecosystem tests 2023-05-04 15:35:58 -07:00
Ashcon Partovi
1183dd1a3f Add initial ecosystem tests (#2801)
* Add initial ecosystem tests

* Run ecosystem tests every morning, after canary release
2023-05-04 15:27:12 -07:00
Jarred Sumner
fe57932dfb Add missing type for sqlite (#2764)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-30 23:36:32 -07:00
dave caruso
96e113f41c bundler tests: rest of default.test.ts and starting jsx tests (#2765) 2023-04-28 21:08:48 -07:00
Colin McDonnell
1483d73c3a Bundler docs updates + support for naming string (#2767)
* Bundler docs updates

* Remove comments

* Updates

* Fix bunx usages

* Add info about metafile
2023-04-28 08:35:20 -07:00
Silver
0060e49923 fix: make node:crypto Hash.copy work correctly (#2761)
This commit will also:
- add a CryptoHasher.copy function
- make CryptoHasher.digest reset the hasher so it can be reused

Resolves #2651
2023-04-27 07:45:32 -07:00
Colin McDonnell
68ab71eb13 Basic types for Bun.build (#2713)
* Basic types for Bun.build

* Tweaks

* Updates
2023-04-26 14:54:05 -07:00