@truedat/dq 4.43.6 → 4.44.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/package.json +5 -5
  3. package/src/components/ImplementationCrumbs.js +91 -0
  4. package/src/components/ImplementationResultBar.js +1 -2
  5. package/src/components/ImplementationStructures.js +1 -3
  6. package/src/components/Implementations.js +9 -2
  7. package/src/components/ImplementationsRoutes.js +386 -17
  8. package/src/components/NewRuleImplementation.js +11 -27
  9. package/src/components/RemediationCrumbs.js +1 -2
  10. package/src/components/RuleCrumbs.js +6 -63
  11. package/src/components/RuleImplementation.js +15 -36
  12. package/src/components/RuleImplementationActions.js +18 -12
  13. package/src/components/RuleImplementationLink.js +2 -3
  14. package/src/components/RuleImplementationProperties.js +13 -14
  15. package/src/components/RuleImplementationResultTabs.js +27 -35
  16. package/src/components/RuleImplementationResults.js +1 -6
  17. package/src/components/RuleImplementationResultsLink.js +3 -9
  18. package/src/components/RuleImplementationTabs.js +13 -18
  19. package/src/components/RuleImplementationsActions.js +47 -1
  20. package/src/components/RuleLink.js +3 -4
  21. package/src/components/RuleResultRow.js +1 -6
  22. package/src/components/RuleResultSegmentRow.js +0 -3
  23. package/src/components/RuleResultSegments.js +2 -6
  24. package/src/components/RuleResultsRoutes.js +10 -10
  25. package/src/components/RuleRoutes.js +8 -285
  26. package/src/components/__tests__/__snapshots__/ImplementationResultBar.spec.js.snap +5 -5
  27. package/src/components/__tests__/__snapshots__/NewRuleImplementation.spec.js.snap +3 -0
  28. package/src/components/__tests__/__snapshots__/RuleCrumbs.spec.js.snap +2 -73
  29. package/src/components/__tests__/__snapshots__/RuleImplementation.spec.js.snap +7 -86
  30. package/src/components/__tests__/__snapshots__/RuleImplementationResultTabs.spec.js.snap +1 -1
  31. package/src/components/__tests__/__snapshots__/RuleImplementationResults.spec.js.snap +0 -7
  32. package/src/components/__tests__/__snapshots__/RuleImplementationResultsLink.spec.js.snap +1 -1
  33. package/src/components/__tests__/__snapshots__/RuleImplementationTabs.spec.js.snap +5 -5
  34. package/src/components/ruleImplementationForm/InformationForm.js +14 -1
  35. package/src/components/ruleImplementationForm/RuleImplementationForm.js +16 -11
  36. package/src/components/ruleImplementationForm/RuleImplementationRawForm.js +16 -0
  37. package/src/components/ruleImplementationForm/__tests__/RuleImplementationForm.spec.js +4 -2
  38. package/src/components/ruleImplementationForm/__tests__/RuleImplementationRawForm.spec.js +40 -0
  39. package/src/components/ruleImplementationForm/__tests__/__snapshots__/RuleImplementationForm.spec.js.snap +4 -0
  40. package/src/components/ruleImplementationForm/__tests__/__snapshots__/RuleImplementationRawForm.spec.js.snap +5 -0
  41. package/src/messages/en.js +4 -0
  42. package/src/messages/es.js +4 -0
  43. package/src/reducers/__tests__/ruleImplementationRedirect.spec.js +2 -2
  44. package/src/reducers/__tests__/ruleRedirect.spec.js +3 -3
  45. package/src/reducers/ruleImplementation.js +3 -0
  46. package/src/reducers/ruleImplementationRedirect.js +7 -6
  47. package/src/reducers/ruleRedirect.js +4 -2
  48. package/src/reducers/userRulePermissions.js +3 -1
  49. package/src/sagas/__tests__/deleteRuleResult.spec.js +3 -5
  50. package/src/sagas/__tests__/setRuleImplementationStatus.spec.js +7 -4
  51. package/src/sagas/deleteRuleResult.js +2 -7
  52. package/src/sagas/setRuleImplementationStatus.js +7 -1
@@ -1,30 +1,16 @@
1
1
  import _ from "lodash/fp";
2
2
  import React from "react";
3
- import { useParams } from "react-router-dom";
4
3
  import PropTypes from "prop-types";
5
4
  import { Route, useRouteMatch } from "react-router-dom";
6
5
  import { connect } from "react-redux";
7
6
  import { Segment } from "semantic-ui-react";
8
- import { Unauthorized } from "@truedat/core/components";
9
- import { useAuthorized } from "@truedat/core/hooks";
10
7
  import {
11
8
  RULE,
12
9
  RULE_EDIT,
13
10
  RULE_EVENTS,
14
- RULE_IMPLEMENTATION_CLONE,
15
- RULE_IMPLEMENTATION_EDIT,
16
- RULE_IMPLEMENTATION_EVENTS,
17
- IMPLEMENTATION_CONCEPT_LINKS,
18
- IMPLEMENTATION_CONCEPT_LINKS_NEW,
19
- IMPLEMENTATION_STRUCTURES,
20
- IMPLEMENTATION_STRUCTURES_NEW,
21
- RULE_IMPLEMENTATION_MOVE,
22
11
  RULE_IMPLEMENTATION_NEW,
23
- RULE_IMPLEMENTATION_RESULT_DETAILS,
24
- RULE_IMPLEMENTATION_RESULTS_DETAILS,
25
- RULE_IMPLEMENTATION,
12
+ RULE_IMPLEMENTATION_NEW_RAW,
26
13
  RULE_NEW,
27
- RULE_IMPLEMENTATION_RESULTS,
28
14
  RULE_IMPLEMENTATIONS,
29
15
  } from "@truedat/core/routes";
30
16
  import {
@@ -32,27 +18,16 @@ import {
32
18
  getImplementationStructuresLoaded,
33
19
  } from "../selectors";
34
20
  import EditRule from "./EditRule";
35
- import RuleResultDetails from "./RuleResultDetails";
36
- import RuleResultsRoutes from "./RuleResultsRoutes";
37
- import ImplementationStructures from "./ImplementationStructures";
38
- import ImplementationStructuresNew from "./ImplementationStructuresNew";
39
- import MoveImplementation from "./MoveImplementation";
40
21
  import NewRule from "./NewRule";
41
22
  import NewRuleImplementation from "./NewRuleImplementation";
42
23
  import Rule from "./Rule";
43
24
  import RuleCrumbs from "./RuleCrumbs";
44
25
  import RuleEvents from "./RuleEvents";
45
26
  import RuleFormImplementations from "./RuleFormImplementations";
46
- import RuleImplementation from "./RuleImplementation";
47
- import RuleImplementationEvents from "./RuleImplementationEvents";
48
- import RuleImplementationLoader from "./RuleImplementationLoader";
49
- import RuleImplementationProperties from "./RuleImplementationProperties";
50
- import RuleImplementationResults from "./RuleImplementationResults";
51
27
  import RuleImplementationsFromRuleLoader from "./RuleImplementationsFromRuleLoader";
52
28
  import RuleLoader from "./RuleLoader";
53
29
  import RuleProperties from "./RuleProperties";
54
30
  import RuleSubscriptionLoader from "./RuleSubscriptionLoader";
55
- import RuleResultRemediationLoader from "./RuleResultRemediationLoader";
56
31
 
57
32
  const DomainsLoader = React.lazy(() =>
58
33
  import("@truedat/bg/taxonomy/components/DomainsLoader")
@@ -66,15 +41,6 @@ const EventsLoader = React.lazy(() =>
66
41
  const TemplatesLoader = React.lazy(() =>
67
42
  import("@truedat/df/templates/components/TemplatesLoader")
68
43
  );
69
- const ImplementationStructuresLoader = React.lazy(() =>
70
- import("@truedat/dd/components/ImplementationStructuresLoader")
71
- );
72
- const ImplementationLinks = React.lazy(() =>
73
- import("@truedat/lm/components/ImplementationLinks")
74
- );
75
- const ImplementationRelationForm = React.lazy(() =>
76
- import("@truedat/lm/components/ImplementationRelationForm")
77
- );
78
44
 
79
45
  const QualityTemplatesLoader = () => <TemplatesLoader scope="dq" />;
80
46
  const ImplementationTemplatesLoader = () => <TemplatesLoader scope="ri" />;
@@ -85,23 +51,13 @@ const RuleEventsLoader = () => {
85
51
  return <EventsLoader resource_id={id} resource_type="rule" />;
86
52
  };
87
53
 
88
- const ImplementationEventsLoader = () => {
89
- const match = useRouteMatch();
90
- const id = _.path("params.implementation_id")(match);
91
- return <EventsLoader resource_id={id} resource_type="implementation" />;
92
- };
93
-
94
54
  export const RuleRoutes = ({
95
55
  ruleLoaded,
96
- ruleImplementationLoaded,
97
- implementationStructures,
98
56
  rule,
99
- implementationStructuresLoaded,
100
57
  systemsLoading,
101
58
  templatesLoaded,
102
59
  template,
103
60
  structuresAliasesLoading,
104
- ruleImplementation,
105
61
  }) => {
106
62
  return (
107
63
  <>
@@ -201,241 +157,18 @@ export const RuleRoutes = ({
201
157
  </>
202
158
  )}
203
159
  />
204
-
205
- <ImplementationRoutes
206
- {...{
207
- ruleLoaded,
208
- ruleImplementationLoaded,
209
- implementationStructures,
210
- implementationStructuresLoaded,
211
- structuresAliasesLoading,
212
- ruleImplementation,
213
- }}
214
- />
215
- </>
216
- )}
217
- />
218
- </>
219
- );
220
- };
221
-
222
- const ImplementationRoutes = ({
223
- ruleLoaded,
224
- ruleImplementationLoaded,
225
- implementationStructures,
226
- implementationStructuresLoaded,
227
- structuresAliasesLoading,
228
- ruleImplementation,
229
- }) => {
230
- const latest = _.head(ruleImplementation.results);
231
- const authorized = useAuthorized();
232
- const { rule_result_id: ruleResultId } = useParams();
233
-
234
- return (
235
- <>
236
- <Route
237
- path={RULE_IMPLEMENTATION}
238
- render={() => (
239
- <>
240
- <RuleImplementationLoader />
241
-
242
160
  <Route
243
161
  exact
244
- path={RULE_IMPLEMENTATION}
245
- render={() => (
246
- <>
247
- <RuleCrumbs />
248
- <Segment>
249
- <ImplementationTemplatesLoader />
250
- {ruleLoaded && ruleImplementationLoaded && (
251
- <RuleImplementation>
252
- <RuleImplementationProperties />
253
- </RuleImplementation>
254
- )}
255
- </Segment>
256
- </>
257
- )}
258
- />
259
-
260
- <Route
261
- exact
262
- path={RULE_IMPLEMENTATION_EVENTS}
263
- render={() => (
264
- <>
265
- <RuleCrumbs />
266
- <Segment>
267
- <ImplementationEventsLoader />
268
- {ruleLoaded && ruleImplementationLoaded && (
269
- <RuleImplementation>
270
- <RuleImplementationEvents />
271
- </RuleImplementation>
272
- )}
273
- </Segment>
274
- </>
275
- )}
276
- />
277
-
278
- <Route
279
- exact
280
- path={RULE_IMPLEMENTATION_CLONE}
281
- render={() => (
282
- <>
283
- <ImplementationTemplatesLoader />
284
- {ruleImplementationLoaded && (
285
- <ImplementationStructuresLoader
286
- structureIds={implementationStructures}
287
- />
288
- )}
289
- {!structuresAliasesLoading &&
290
- ruleImplementationLoaded &&
291
- implementationStructuresLoaded && (
292
- <NewRuleImplementation edition={true} clone={true} />
293
- )}
294
- </>
295
- )}
296
- />
297
- <Route
298
- exact
299
- path={RULE_IMPLEMENTATION_EDIT}
162
+ path={RULE_IMPLEMENTATION_NEW_RAW}
300
163
  render={() => (
301
164
  <>
302
165
  <ImplementationTemplatesLoader />
303
- {ruleImplementationLoaded && (
304
- <ImplementationStructuresLoader
305
- structureIds={implementationStructures}
166
+ {!structuresAliasesLoading && !systemsLoading && (
167
+ <NewRuleImplementation
168
+ edition={false}
169
+ implementationType="raw"
306
170
  />
307
171
  )}
308
- {!structuresAliasesLoading &&
309
- ruleImplementationLoaded &&
310
- implementationStructuresLoaded && (
311
- <NewRuleImplementation edition />
312
- )}
313
- </>
314
- )}
315
- />
316
-
317
- <Route
318
- exact
319
- path={RULE_IMPLEMENTATION_MOVE}
320
- render={() => (
321
- <>
322
- <RuleCrumbs />
323
- <Segment>
324
- {ruleLoaded && ruleImplementationLoaded ? (
325
- <RuleImplementation>
326
- {authorized ? <MoveImplementation /> : <Unauthorized />}
327
- </RuleImplementation>
328
- ) : null}
329
- </Segment>
330
- </>
331
- )}
332
- />
333
- <Route
334
- exact
335
- path={IMPLEMENTATION_CONCEPT_LINKS}
336
- render={() => (
337
- <>
338
- <RuleCrumbs />
339
- <Segment>
340
- {ruleLoaded && ruleImplementationLoaded && (
341
- <RuleImplementation>
342
- <ImplementationLinks />
343
- </RuleImplementation>
344
- )}
345
- </Segment>
346
- </>
347
- )}
348
- />
349
- <Route
350
- exact
351
- path={IMPLEMENTATION_CONCEPT_LINKS_NEW}
352
- render={() => (
353
- <>
354
- <RuleCrumbs />
355
- <Segment>
356
- {ruleLoaded && ruleImplementationLoaded && (
357
- <RuleImplementation>
358
- <ImplementationRelationForm />
359
- </RuleImplementation>
360
- )}
361
- </Segment>
362
- </>
363
- )}
364
- />
365
- <Route
366
- exact
367
- path={IMPLEMENTATION_STRUCTURES}
368
- render={() => (
369
- <>
370
- <RuleCrumbs />
371
- <Segment>
372
- {ruleLoaded && ruleImplementationLoaded && (
373
- <RuleImplementation>
374
- <ImplementationStructures />
375
- </RuleImplementation>
376
- )}
377
- </Segment>
378
- </>
379
- )}
380
- />
381
- <Route
382
- exact
383
- path={IMPLEMENTATION_STRUCTURES_NEW}
384
- render={() => (
385
- <>
386
- <RuleCrumbs />
387
- <Segment>
388
- {ruleLoaded && ruleImplementationLoaded && (
389
- <RuleImplementation>
390
- <ImplementationStructuresNew />
391
- </RuleImplementation>
392
- )}
393
- </Segment>
394
- </>
395
- )}
396
- />
397
- <Route
398
- exact
399
- path={RULE_IMPLEMENTATION_RESULTS}
400
- render={() => (
401
- <>
402
- <RuleCrumbs />
403
- <Segment>
404
- {ruleLoaded && ruleImplementationLoaded && (
405
- <RuleImplementation>
406
- <RuleImplementationResults ruleResult={latest} />
407
- </RuleImplementation>
408
- )}
409
- </Segment>
410
- </>
411
- )}
412
- />
413
-
414
- <Route
415
- exact
416
- path={RULE_IMPLEMENTATION_RESULTS_DETAILS}
417
- render={() => (
418
- <>
419
- <RuleCrumbs />
420
- <Segment>
421
- {ruleLoaded && ruleImplementationLoaded && (
422
- <RuleImplementation>
423
- <RuleResultDetails ruleResultId={latest.id} />
424
- </RuleImplementation>
425
- )}
426
- </Segment>
427
- </>
428
- )}
429
- />
430
- <Route
431
- path={RULE_IMPLEMENTATION_RESULT_DETAILS}
432
- render={() => (
433
- <>
434
- <RuleResultRemediationLoader
435
- propRuleResultId={ruleResultId}
436
- />
437
- <TemplatesLoader scope="remediation" />
438
- <RuleResultsRoutes />
439
172
  </>
440
173
  )}
441
174
  />
@@ -446,23 +179,13 @@ const ImplementationRoutes = ({
446
179
  );
447
180
  };
448
181
 
449
- const implementationPropTypes = {
450
- ruleLoaded: PropTypes.bool,
451
- ruleImplementationLoaded: PropTypes.bool,
452
- implementationStructures: PropTypes.array,
453
- implementationStructuresLoaded: PropTypes.bool,
454
- structuresAliasesLoading: PropTypes.bool,
455
- ruleImplementation: PropTypes.object,
456
- };
457
-
458
- ImplementationRoutes.propTypes = implementationPropTypes;
459
-
460
182
  RuleRoutes.propTypes = {
461
183
  rule: PropTypes.object,
462
184
  template: PropTypes.object,
463
185
  systemsLoading: PropTypes.bool,
464
186
  templatesLoaded: PropTypes.bool,
465
- ...implementationPropTypes,
187
+ ruleLoaded: PropTypes.bool,
188
+ structuresAliasesLoading: PropTypes.bool,
466
189
  };
467
190
 
468
191
  const mapStateToProps = (state) => {
@@ -8,7 +8,7 @@ exports[`<ImplementationResultBar /> render failed implementation 1`] = `
8
8
  <a
9
9
  as="div"
10
10
  class="rule-summary pointer"
11
- href="/rules/8/implementations/1/results"
11
+ href="/implementations/1/results"
12
12
  >
13
13
  <span
14
14
  class="failed-color"
@@ -33,7 +33,7 @@ exports[`<ImplementationResultBar /> render not executed implementation 1`] = `
33
33
  <a
34
34
  as="div"
35
35
  class="rule-summary pointer"
36
- href="/rules/8/implementations/1/results"
36
+ href="/implementations/1/results"
37
37
  >
38
38
  <span
39
39
  class="not-executed-color"
@@ -58,7 +58,7 @@ exports[`<ImplementationResultBar /> render overGoal implementation 1`] = `
58
58
  <a
59
59
  as="div"
60
60
  class="rule-summary pointer"
61
- href="/rules/8/implementations/1/results"
61
+ href="/implementations/1/results"
62
62
  >
63
63
  <span
64
64
  class="over-goal-color"
@@ -88,7 +88,7 @@ exports[`<ImplementationResultBar /> render underGoal implementation 1`] = `
88
88
  <a
89
89
  as="div"
90
90
  class="rule-summary pointer"
91
- href="/rules/8/implementations/1/results"
91
+ href="/implementations/1/results"
92
92
  >
93
93
  <span
94
94
  class="under-goal-color"
@@ -118,7 +118,7 @@ exports[`<ImplementationResultBar /> render underMinimum implementation 1`] = `
118
118
  <a
119
119
  as="div"
120
120
  class="rule-summary pointer"
121
- href="/rules/8/implementations/1/results"
121
+ href="/implementations/1/results"
122
122
  >
123
123
  <span
124
124
  class="under-minimum-color"
@@ -926,6 +926,9 @@ exports[`<NewRuleImplementation /> matches the latest snapshot 1`] = `
926
926
  </div>
927
927
  </div>
928
928
  </div>
929
+ <div
930
+ class="field"
931
+ />
929
932
  <div
930
933
  class="ui segment"
931
934
  >
@@ -27,58 +27,10 @@ exports[`<RuleCrumbs /> matches a snapshot with resultId 1`] = `
27
27
  <BreadcrumbDivider
28
28
  icon="right angle"
29
29
  />
30
- <BreadcrumbSection
31
- active={false}
32
- as={
33
- Object {
34
- "$$typeof": Symbol(react.forward_ref),
35
- "displayName": "Link",
36
- "propTypes": Object {
37
- "innerRef": [Function],
38
- "onClick": [Function],
39
- "replace": [Function],
40
- "target": [Function],
41
- "to": [Function],
42
- },
43
- "render": [Function],
44
- }
45
- }
46
- to="/rules/1"
47
- >
48
- foo
49
- </BreadcrumbSection>
50
- <BreadcrumbDivider
51
- icon="right angle"
52
- />
53
- <BreadcrumbSection
54
- active={false}
55
- as={
56
- Object {
57
- "$$typeof": Symbol(react.forward_ref),
58
- "displayName": "Link",
59
- "propTypes": Object {
60
- "innerRef": [Function],
61
- "onClick": [Function],
62
- "replace": [Function],
63
- "target": [Function],
64
- "to": [Function],
65
- },
66
- "render": [Function],
67
- }
68
- }
69
- to="/rules/1/implementations/2"
70
- >
71
- ri
72
- </BreadcrumbSection>
73
- <BreadcrumbDivider
74
- icon="right angle"
75
- />
76
30
  <BreadcrumbSection
77
31
  active={true}
78
32
  >
79
- <DateTime
80
- value="2021-10-14 11:57"
81
- />
33
+ foo
82
34
  </BreadcrumbSection>
83
35
  </Breadcrumb>
84
36
  `;
@@ -110,33 +62,10 @@ exports[`<RuleCrumbs /> matches the latest snapshot 1`] = `
110
62
  <BreadcrumbDivider
111
63
  icon="right angle"
112
64
  />
113
- <BreadcrumbSection
114
- active={false}
115
- as={
116
- Object {
117
- "$$typeof": Symbol(react.forward_ref),
118
- "displayName": "Link",
119
- "propTypes": Object {
120
- "innerRef": [Function],
121
- "onClick": [Function],
122
- "replace": [Function],
123
- "target": [Function],
124
- "to": [Function],
125
- },
126
- "render": [Function],
127
- }
128
- }
129
- to="/rules/1"
130
- >
131
- foo
132
- </BreadcrumbSection>
133
- <BreadcrumbDivider
134
- icon="right angle"
135
- />
136
65
  <BreadcrumbSection
137
66
  active={true}
138
67
  >
139
- ri
68
+ foo
140
69
  </BreadcrumbSection>
141
70
  </Breadcrumb>
142
71
  `;
@@ -25,7 +25,7 @@ exports[`<RuleImplementation /> matches the latest snapshot 1`] = `
25
25
  <a
26
26
  as="div"
27
27
  class="rule-summary pointer"
28
- href="/rules/1/implementations/1/results"
28
+ href="/implementations/1/results"
29
29
  >
30
30
  <span
31
31
  class="not-executed-color"
@@ -44,117 +44,38 @@ exports[`<RuleImplementation /> matches the latest snapshot 1`] = `
44
44
  </div>
45
45
  <div
46
46
  class="right aligned eight wide column"
47
- >
48
- <div
49
- aria-expanded="false"
50
- class="ui floating dropdown button icon group-actions"
51
- role="listbox"
52
- tabindex="0"
53
- >
54
- <i
55
- aria-hidden="true"
56
- class="ellipsis vertical icon"
57
- />
58
- <div
59
- class="left menu transition"
60
- >
61
- <a
62
- class="item"
63
- >
64
- <i
65
- aria-hidden="true"
66
- class="black folder open outline icon"
67
- />
68
- archive
69
- </a>
70
- <a
71
- aria-checked="false"
72
- aria-selected="false"
73
- class="item"
74
- href="/rules/1/implementations/1/edit"
75
- role="option"
76
- style="pointer-events: all;"
77
- >
78
- <i
79
- aria-hidden="true"
80
- class="edit outline icon"
81
- />
82
- <span
83
- class="text"
84
- >
85
- edit
86
- </span>
87
- </a>
88
- <a
89
- aria-checked="false"
90
- aria-selected="false"
91
- class="item"
92
- href="/rules/1/implementations/1/move"
93
- role="option"
94
- style="pointer-events: all;"
95
- >
96
- <i
97
- aria-hidden="true"
98
- class="share square icon"
99
- />
100
- <span
101
- class="text"
102
- >
103
- move
104
- </span>
105
- </a>
106
- <a
107
- aria-checked="false"
108
- aria-selected="false"
109
- class="item"
110
- href="/rules/1/implementations/1/clone"
111
- role="option"
112
- style="pointer-events: all;"
113
- >
114
- <i
115
- aria-hidden="true"
116
- class="copy outline icon"
117
- />
118
- <span
119
- class="text"
120
- >
121
- clone
122
- </span>
123
- </a>
124
- </div>
125
- </div>
126
- </div>
47
+ />
127
48
  </div>
128
49
  <div
129
50
  class="ui pointing secondary top attached tabular menu"
130
51
  >
131
52
  <a
132
53
  class="item"
133
- href="/rules/1/implementations/1"
54
+ href="/implementations/1"
134
55
  >
135
56
  implementation
136
57
  </a>
137
58
  <a
138
59
  class="item"
139
- href="/rules/1/implementations/1/links/concepts"
60
+ href="/implementations/1/links/concepts"
140
61
  >
141
62
  Related concepts
142
63
  </a>
143
64
  <a
144
65
  class="item"
145
- href="/rules/1/implementations/1/structures"
66
+ href="/implementations/1/structures"
146
67
  >
147
68
  Structures
148
69
  </a>
149
70
  <a
150
71
  class="item"
151
- href="/rules/1/implementations/1/results"
72
+ href="/implementations/1/results"
152
73
  >
153
74
  results
154
75
  </a>
155
76
  <a
156
77
  class="item"
157
- href="/rules/1/implementations/1/events"
78
+ href="/implementations/1/events"
158
79
  >
159
80
  events
160
81
  </a>
@@ -7,7 +7,7 @@ exports[`<RuleImplementationResultTabs /> matches the latest snapshot 1`] = `
7
7
  >
8
8
  <a
9
9
  class="item"
10
- href="/rules/8/implementations/1/results/2"
10
+ href="/implementations/1/results/2"
11
11
  >
12
12
  Information
13
13
  </a>
@@ -45,13 +45,6 @@ exports[`<RuleImplementationResults /> matches the latest snapshot 1`] = `
45
45
  }
46
46
  key="0"
47
47
  optionalColumns={Array []}
48
- rule={
49
- Object {
50
- "goal": 100,
51
- "minimum": 50,
52
- "result_type": "percentage",
53
- }
54
- }
55
48
  ruleImplementation={
56
49
  Object {
57
50
  "results": Array [
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`<RuleImplementationResultsLink /> matches the latest snapshot 1`] = `
4
4
  <Link
5
- to="/rules/4/implementations/123/results"
5
+ to="/implementations/123/results"
6
6
  >
7
7
  foo
8
8
  </Link>