~~ lineWidth: 40 ~~
== should go multi-line when the following args are on a different line ==
call({
    test,
}, test, test);

[expect]
call(
    {
        test,
    },
    test,
    test,
);

== should go multi-line if a single arg is single-line ==
call({
    testing,
}, test, {
    testing,
});

[expect]
call(
    {
        testing,
    },
    test,
    {
        testing,
    },
);

== should go multi-line if a non-inline multi-line node is multi-line in the middle ==
call({
    test,
    testing,
}, "test"
    + "testinggggggggggggggggggggg"
    + "other", {
    test,
    testing,
}, {
    test,
    testing,
});

[expect]
call(
    {
        test,
        testing,
    },
    "test"
        + "testinggggggggggggggggggggg"
        + "other",
    {
        test,
        testing,
    },
    {
        test,
        testing,
    },
);

== should go multi-line if a non-inline multi-line node is at the end ==
call({
    test,
    testing,
}, "test"
    + "testinggggggggggggggggggggg"
    + "other");

[expect]
call(
    {
        test,
        testing,
    },
    "test"
        + "testinggggggggggggggggggggg"
        + "other",
);

== should not go multi-line if the last arg is on a single line ==
setTimeout(() => {
    test;
}, 0);

[expect]
setTimeout(() => {
    test;
}, 0);

== should go multi-line if the last two args are on a single line ==
setTimeout(() => {
    test;
}, 0, 0);

[expect]
setTimeout(
    () => {
        test;
    },
    0,
    0,
);

== should keep object literal inline when going multi-line ==
testing({ testttttttttttt: "", other: 533 })

[expect]
testing({
    testttttttttttt: "",
    other: 533,
});

== should keep array literal inline when going multi-line ==
testing([testing, this, out, with, some, text]);

[expect]
testing([
    testing,
    this,
    out,
    with,
    some,
    text,
]);

== should handle going multi-line for a template literal ==
testing(`test testing testing ${[4]} test`);

[expect]
testing(
    `test testing testing ${[4]} test`,
);

== should handle going multi-line for conditional expr ==
testing(testinggggg ? testttttt : testing);

[expect]
testing(
    testinggggg ? testttttt : testing,
);

== should handle going multi-line for binary expr ==
testing(testing + thisout + withsometext);

[expect]
testing(
    testing + thisout + withsometext,
);
