Frage

I have created some unit tests for my firebase security rules. Part of this testing is trying to do illegal operations and asserting that they fail.

My problem has to do with noise; when I run the tests using nodeunit, the firebase client spits out several logs similar to this:

FIREBASE WARNING: set at /user failed: permission_denied

I do not want this output when intentionally doing illegal operations as it just results in noise and confusion.

War es hilfreich?

Lösung

As Kato said, there doesn't appear to be an official way to disable it. That said, if you really want to, it takes 2 seconds to go into the source, Ctrl+F for "WARNING", and comment out this line:

"undefined"!==typeof console.warn?console.warn(b):console.log(b)

Andere Tipps

There is no way to disable the security warnings as they are emitted asynchronously by the Firebase SDK. I worked around this by adding a message before the errors:

>>> An intentional security error should be printed after this line...

In our testing suite, we rewrite process.stderr.write to only ignore firebase warnings like so:

Javascript

process.stderr.write = (function(write) {
  return function() {
    if (!arguments[0].includes("FIREBASE WARNING"))
      write.apply(process.stderr, arguments);
  };
}(process.stderr.write));

Typescript (including tslint fix)

process.stderr.write = (() => {
    // tslint:disable-next-line:no-unbound-method
    const write = process.stderr.write;

    return function () {
        if (!(arguments[0] as string).includes("FIREBASE WARNING")) {
            return write.apply(process.stderr, arguments);
        }
    };
})();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top