firebase-array
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

Array that exposes same API as Firebase Listener Methods

import FirebaseArray from "firebase-array";

describe("FirebaseArray", () => {
  test("exports", () => {
    expect(FirebaseArray).toBeTruthy();
  });
  test("child_added works", () => {
    const firebaseArray = new FirebaseArray();
    expect(firebaseArray.get()).toEqual({ keys: [], values: [] });
    firebaseArray.childAdded("1", "", null);
    expect(firebaseArray.get()).toEqual({ keys: ["1"], values: [""] });
    firebaseArray.childAdded("2", "", null);
    expect(firebaseArray.get()).toEqual({ keys: ["2", "1"], values: ["", ""] });
    const newState = firebaseArray.childAdded("3", "", "1");
    expect(newState).toEqual({
      keys: ["2", "1", "3"],
      values: ["", "", ""]
    });
  });
  test("child_removed works", () => {
    const firebaseArray = new FirebaseArray();
    expect(firebaseArray.get()).toEqual({ keys: [], values: [] });
    firebaseArray.childAdded("1", "", null);
    firebaseArray.childRemoved("1");
    expect(firebaseArray.get()).toEqual({ keys: [], values: [] });
  });

  test("child_moved works", () => {
    const firebaseArray = new FirebaseArray();
    expect(firebaseArray.get()).toEqual({ keys: [], values: [] });
    firebaseArray.childAdded("1", "v1", null);
    firebaseArray.childAdded("2", "v2", "1");
    expect(firebaseArray.get()).toEqual({
      keys: ["1", "2"],
      values: ["v1", "v2"]
    });
    firebaseArray.childMoved("1", "v1", "2");
    expect(firebaseArray.get()).toEqual({
      keys: ["2", "1"],
      values: ["v2", "v1"]
    });
  });

  test("child_changed works", () => {
    const firebaseArray = new FirebaseArray();
    expect(firebaseArray.get()).toEqual({ keys: [], values: [] });
    firebaseArray.childAdded("1", "v1", null);
    firebaseArray.childAdded("2", "v2", "1");
    expect(firebaseArray.get()).toEqual({
      keys: ["1", "2"],
      values: ["v1", "v2"]
    });
    firebaseArray.childChanged("1", "v1-2", "2");
    expect(firebaseArray.get()).toEqual({
      keys: ["1", "2"],
      values: ["v1-2", "v2"]
    });
  });
});

Readme

Keywords

none

Package Sidebar

Install

npm i firebase-array

Weekly Downloads

3

Version

1.2.0

License

MIT

Unpacked Size

12 kB

Total Files

7

Last publish

Collaborators

  • rakannimer