summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/src/reducers/tests/breakpoints.spec.js
blob: aa7f71d7a5cdc6f282f822da84f675d3642ef7ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */

import { initialBreakpointsState } from "../breakpoints";
import { getBreakpointsForSource } from "../../selectors/breakpoints";

import { makeMockBreakpoint, makeMockSource } from "../../utils/test-mockup";

function initializeStateWith(data) {
  const state = initialBreakpointsState();
  state.breakpoints = data;
  return state;
}

describe("Breakpoints Selectors", () => {
  it("it gets a breakpoint for an original source", () => {
    const sourceId = "server1.conn1.child1/source1/originalSource";
    const matchingBreakpoints = {
      id1: makeMockBreakpoint(makeMockSource(undefined, sourceId), 1),
    };

    const otherBreakpoints = {
      id2: makeMockBreakpoint(makeMockSource(undefined, "not-this-source"), 1),
    };

    const data = {
      ...matchingBreakpoints,
      ...otherBreakpoints,
    };

    const breakpoints = initializeStateWith(data);
    const allBreakpoints = Object.values(matchingBreakpoints);
    const sourceBreakpoints = getBreakpointsForSource(
      { breakpoints },
      sourceId
    );

    expect(sourceBreakpoints).toEqual(allBreakpoints);
    expect(sourceBreakpoints[0] === allBreakpoints[0]).toBe(true);
  });

  it("it gets a breakpoint for a generated source", () => {
    const generatedSourceId = "random-source";
    const matchingBreakpoints = {
      id1: {
        ...makeMockBreakpoint(makeMockSource(undefined, generatedSourceId), 1),
        location: { line: 1, source: { id: "original-source-id-1" } },
      },
    };

    const otherBreakpoints = {
      id2: {
        ...makeMockBreakpoint(makeMockSource(undefined, "not-this-source"), 1),
        location: { line: 1, source: { id: "original-source-id-2" } },
      },
    };

    const data = {
      ...matchingBreakpoints,
      ...otherBreakpoints,
    };

    const breakpoints = initializeStateWith(data);

    const allBreakpoints = Object.values(matchingBreakpoints);
    const sourceBreakpoints = getBreakpointsForSource(
      { breakpoints },
      generatedSourceId
    );

    expect(sourceBreakpoints).toEqual(allBreakpoints);
  });
});