aboutsummaryrefslogtreecommitdiff
path: root/src/cli.zig
diff options
context:
space:
mode:
authorGravatar Dylan Conway <35280289+dylan-conway@users.noreply.github.com> 2023-03-14 16:50:59 -0700
committerGravatar GitHub <noreply@github.com> 2023-03-14 16:50:59 -0700
commit4792abdb7fbceef7e4ec6bf15c671b88f41c65eb (patch)
tree00db7585ea137a1bbb775cfe586e32078b77b13b /src/cli.zig
parent76b875e4140b45dd7d70e11dfb3a87d2d9469aa0 (diff)
downloadbun-4792abdb7fbceef7e4ec6bf15c671b88f41c65eb.tar.gz
bun-4792abdb7fbceef7e4ec6bf15c671b88f41c65eb.tar.zst
bun-4792abdb7fbceef7e4ec6bf15c671b88f41c65eb.zip
Implement `toMatchSnapshot()` (#2294)
* buggy snapshot * error output for failed snapshot * missing first * hints * open dir once, better cleanup * update flag * truncate on update * object and class snapshot formatting * array formatting * no function name, single item is empty array * string objects, maps, sets, promise * avoid using invalid memory * handle number objects * handle extending `Number` * boolean objects * snapshot tests and test updates * snapshot format for buffers * safer snapshot parsing * property matchers setup * strings and tests * generate classes with empty prototype * optional `propertyMatchers` parameter * new test folder structure * strings.eqlLong * globalObject.throwPretty() and expect.any tests * add updateSnapshot flag to help * move snapshot format out of `printErrorlikeObject` * empty object snapshot format * separate typed array, remove trailing comma * use `isCell`, object trailing commas * handle unicode * todo for primitive constructors * switch to `JSC.Node.Syscall.open` and `JSC.Maybe` * use js parser for snapshot files * deinit ast, log parse error * copy/paste most of `exports.ZigConsoleClient` * remove snapshot option * remove ordered properties option * remove snapshot format option from `exports.zig` * remove extra newlines * change mode * update test runner output * escape backticks faster * `bunx jest` in temp dir * remove buffered writer * add `toMatchSnapshot` to types * cleanup, switch to `pread` * cli `--update` flag * `--update-snapshots` * remove string object format
Diffstat (limited to 'src/cli.zig')
-rw-r--r--src/cli.zig16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/cli.zig b/src/cli.zig
index e05bd113d..9b04a3588 100644
--- a/src/cli.zig
+++ b/src/cli.zig
@@ -214,8 +214,14 @@ pub const Arguments = struct {
clap.parseParam("--outdir <STR> Default to \"dist\" if multiple files") catch unreachable,
};
+ // TODO: update test completions
+ const test_only_params = [_]ParamType{
+ clap.parseParam("--update-snapshots Update snapshot files") catch unreachable,
+ };
+
const build_params_public = public_params ++ build_only_params;
pub const build_params = build_params_public ++ debug_params;
+ pub const test_params = params ++ test_only_params;
fn printVersionAndExit() noreturn {
@setCold(true);
@@ -368,6 +374,10 @@ pub const Arguments = struct {
cwd = try std.process.getCwdAlloc(allocator);
}
+ if (cmd == .TestCommand) {
+ ctx.test_options.update_snapshots = args.flag("--update-snapshots");
+ }
+
ctx.args.absolute_working_dir = cwd;
ctx.positionals = args.positionals();
@@ -859,6 +869,10 @@ pub const Command = struct {
test_directory: []const u8 = "",
};
+ pub const TestOptions = struct {
+ update_snapshots: bool = false,
+ };
+
pub const Context = struct {
start_time: i128,
args: Api.TransformOptions,
@@ -869,6 +883,7 @@ pub const Command = struct {
install: ?*Api.BunInstall = null,
debug: DebugOptions = DebugOptions{},
+ test_options: TestOptions = TestOptions{},
preloads: []const string = &[_]string{},
has_loaded_global_config: bool = false,
@@ -1418,6 +1433,7 @@ pub const Command = struct {
pub fn params(comptime cmd: Tag) []const Arguments.ParamType {
return &comptime switch (cmd) {
Command.Tag.BuildCommand => Arguments.build_params,
+ Command.Tag.TestCommand => Arguments.test_params,
else => Arguments.params,
};
}