Skip to content

Commit

Permalink
fix(showcase): prevent arbitrary url evaluation
Browse files Browse the repository at this point in the history
  • Loading branch information
fpaul-1A committed Jul 8, 2024
1 parent 9e984e8 commit c99dc31
Show file tree
Hide file tree
Showing 9 changed files with 67 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { FormsModule } from '@angular/forms';
import { DfMedia } from '@design-factory/design-factory';
import { NgbHighlight, NgbPagination, NgbPaginationPages } from '@ng-bootstrap/ng-bootstrap';
import { O3rComponent } from '@o3r/core';
import { OtterPickerPresComponent } from '../../utilities';
import { OtterIconPresComponent, OtterPickerPresComponent } from '../../utilities';

const FILTER_PAG_REGEX = /[^0-9]/g;

Expand All @@ -18,6 +18,7 @@ const FILTER_PAG_REGEX = /[^0-9]/g;
NgbHighlight,
FormsModule,
NgbPagination,
OtterIconPresComponent,
OtterPickerPresComponent,
NgbPaginationPages
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
<tr>
<td>
@if (pet.photoUrls?.[0]; as icon) {
<img width="34" height="34" [src]="baseUrl+icon" alt="{{icon}}" />
<o3r-otter-icon-pres [path]="icon" [width]="34" [height]="34"></o3r-otter-icon-pres>
}
</td>
<th scope="row">
Expand Down
8 changes: 4 additions & 4 deletions apps/showcase/src/components/utilities/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
export * from './date-picker-input/index';
export * from './otter-picker/index';
export * from './copy-text/index';
export * from './date-picker-input/index';
export * from './date-picker-input-hebrew/index';
export * from './in-page-nav/index';
export * from './otter-icon/index';
export * from './otter-picker/index';
export * from './scroll-back-top/index';
export * from './sidenav/index';
export * from './date-picker-input/index';
export * from './date-picker-input-hebrew/index';
2 changes: 2 additions & 0 deletions apps/showcase/src/components/utilities/otter-icon/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './otter-icon-pres.component';

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';
import { O3rComponent } from '@o3r/core';

@O3rComponent({ componentType: 'Component' })
@Component({
selector: 'o3r-otter-icon-pres',
standalone: true,
templateUrl: './otter-icon-pres.template.html',
styleUrls: ['./otter-icon-pres.style.scss'],
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class OtterIconPresComponent {
/** Path of the otter icon */
public path = input.required<string>();

/** Width of the icon */
public width = input.required<number>();

/** Height of the icon */
public height = input.required<number>();

private readonly BASE_URL = location.href.split('/#', 1)[0];

private readonly ICON_MATCHER = /^\/assets\/[\w-/]+\.svg$/;

/** Url of the otter icon or default otter if wrong pattern */
public realUrl = computed(() => {
const path = this.path();

Check failure on line 29 in apps/showcase/src/components/utilities/otter-icon/otter-icon-pres.component.ts

View workflow job for this annotation

GitHub Actions / checks / test (ubuntu-latest)

OtterIconPresComponent › should create

NG0950: Input is required but no value is available yet. Find more at https://angular.dev/errors/NG0950 at OtterIconPresComponent.inputValueFn [as path] (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:98:19) at Object.computation (src/components/utilities/otter-icon/otter-icon-pres.component.ts:29:23) at Object.producerRecomputeValue (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:386:33) at producerUpdateValueVersion (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:135:10) at OtterIconPresComponent.computed [as realUrl] (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:333:9) at OtterIconPresComponent_Template (../../ng:/OtterIconPresComponent.js:10:47) at executeTemplate (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:11620:9) at refreshView (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13238:13) at detectChangesInView (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13454:9) at detectChangesInViewIfAttached (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13414:5) at detectChangesInComponent (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13403:5) at detectChangesInChildComponents (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13467:9) at refreshView (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13292:13) at detectChangesInView (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13454:9) at detectChangesInViewWhileDirty (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13149:9) at detectChangesInternal (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13128:9) at ViewRef$1.detectChanges (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13758:9) at ../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/testing.mjs:321:36 at _ZoneDelegate.invoke (../../.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:412:32) at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (../../.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone-testing.umd.js:2164:43) at _ZoneDelegate.invoke (../../.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:411:38) at Object.onInvoke (../../.yarn/__virtual__/@angular-core-virt

Check failure on line 29 in apps/showcase/src/components/utilities/otter-icon/otter-icon-pres.component.ts

View workflow job for this annotation

GitHub Actions / checks / test (windows-latest)

OtterIconPresComponent › should create

NG0950: Input is required but no value is available yet. Find more at https://angular.dev/errors/NG0950 at OtterIconPresComponent.inputValueFn [as path] (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:98:19) at Object.computation (src/components/utilities/otter-icon/otter-icon-pres.component.ts:29:23) at Object.producerRecomputeValue (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:386:33) at producerUpdateValueVersion (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:135:10) at OtterIconPresComponent.computed [as realUrl] (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:333:9) at OtterIconPresComponent_Template (../../ng:/OtterIconPresComponent.js:10:47) at executeTemplate (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:11620:9) at refreshView (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13238:13) at detectChangesInView (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13454:9) at detectChangesInViewIfAttached (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13414:5) at detectChangesInComponent (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13403:5) at detectChangesInChildComponents (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13467:9) at refreshView (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13292:13) at detectChangesInView (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13454:9) at detectChangesInViewWhileDirty (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13149:9) at detectChangesInternal (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13128:9) at ViewRef$1.detectChanges (../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13758:9) at ../../.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/testing.mjs:321:36 at _ZoneDelegate.invoke (../../.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:412:32) at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (../../.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone-testing.umd.js:2164:43) at _ZoneDelegate.invoke (../../.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:411:38) at Object.onInvoke (../../.yarn/__virtual__/@angular-core-virt

Check failure on line 29 in apps/showcase/src/components/utilities/otter-icon/otter-icon-pres.component.ts

View workflow job for this annotation

GitHub Actions / UT Tests report-ubuntu-latest

OtterIconPresComponent ► OtterIconPresComponent should create ► OtterIconPresComponent should create

Failed test found in: apps/showcase/dist-test/ut-report.xml Error: Error: NG0950: Input is required but no value is available yet. Find more at https://angular.dev/errors/NG0950
Raw output
Error: NG0950: Input is required but no value is available yet. Find more at https://angular.dev/errors/NG0950
    at OtterIconPresComponent.inputValueFn [as path] (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:98:19)
    at Object.computation (/home/runner/work/otter/otter/apps/showcase/src/components/utilities/otter-icon/otter-icon-pres.component.ts:29:23)
    at Object.producerRecomputeValue (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:386:33)
    at producerUpdateValueVersion (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:135:10)
    at OtterIconPresComponent.computed [as realUrl] (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/primitives/signals.mjs:333:9)
    at OtterIconPresComponent_Template (ng:///OtterIconPresComponent.js:10:47)
    at executeTemplate (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:11620:9)
    at refreshView (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13238:13)
    at detectChangesInView (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13454:9)
    at detectChangesInViewIfAttached (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13414:5)
    at detectChangesInComponent (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13403:5)
    at detectChangesInChildComponents (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13467:9)
    at refreshView (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13292:13)
    at detectChangesInView (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13454:9)
    at detectChangesInViewWhileDirty (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13149:9)
    at detectChangesInternal (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13128:9)
    at ViewRef$1.detectChanges (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:13758:9)
    at /home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/testing.mjs:321:36
    at _ZoneDelegate.invoke (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:412:32)
    at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone-testing.umd.js:2164:43)
    at _ZoneDelegate.invoke (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:411:38)
    at Object.onInvoke (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:16120:33)
    at _ZoneDelegate.invoke (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:411:38)
    at ZoneImpl.run (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:147:47)
    at NgZone.run (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/core.mjs:15981:28)
    at PseudoApplicationComponentFixture.detectChanges (/home/runner/work/otter/otter/.yarn/__virtual__/@angular-core-virtual-805a13d475/0/cache/@angular-core-npm-18.0.6-40ce6a35c9-f4a4f2282c.zip/node_modules/@angular/core/fesm2022/testing.mjs:320:22)
    at /home/runner/work/otter/otter/apps/showcase/src/components/utilities/otter-icon/otter-icon-pres.spec.ts:15:13
    at _ZoneDelegate.invoke (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:412:32)
    at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone-testing.umd.js:2164:43)
    at _ZoneDelegate.invoke (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:411:38)
    at ZoneImpl.run (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone.umd.js:147:47)
    at Object.wrappedFunc (/home/runner/work/otter/otter/.yarn/cache/zone.js-npm-0.14.7-a9174c89b4-ae4d677cf3.zip/node_modules/zone.js/bundles/zone-testing.umd.js:450:38)
    at Promise.then.completed (/home/runner/work/otter/otter/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-716a8e3f40.zip/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/home/runner/work/otter/otter/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-716a8e3f40.zip/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusHook (/home/runner/work/otter/otter/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-716a8e3f40.zip/node_modules/jest-circus/build/run.js:281:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/home/runner/work/otter/otter/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-716a8e3f40.zip/node_modules/jest-circus/build/run.js:246:5)
    at _runTestsForDescribeBlock (/home/runner/work/otter/otter/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-716a8e3f40.zip/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/home/runner/work/otter/otter/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-716a8e3f40.zip/node_modules/jest-circus/build/run.js:121:9)
    at run (/home/runner/work/otter/otter/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-716a8e3f40.zip/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/home/runner/work/otter/otter/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-716a8e3f40.zip/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
return this.ICON_MATCHER.test(path) ? `${this.BASE_URL}${path}` : `${this.BASE_URL}/assets/otter.svg`;
});
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';

import { OtterIconPresComponent } from './otter-icon-pres.component';

describe('OtterIconPresComponent', () => {
let component: OtterIconPresComponent;
let fixture: ComponentFixture<OtterIconPresComponent>;

beforeEach(() => {
TestBed.configureTestingModule({
imports: [OtterIconPresComponent]
});
fixture = TestBed.createComponent(OtterIconPresComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
expect(component).toBeTruthy();
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
o3r-otter-icon-pres {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<img [attr.width]="width()" [attr.height]="height()" [src]="realUrl()" alt="{{realUrl()}}" />
2 changes: 1 addition & 1 deletion packages/@ama-sdk/schematics/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@
"typescript": "~5.4.2"
},
"generatorDependencies": {
"@swc/cli": "~0.3.0",
"@swc/cli": "~0.4.0",
"@swc/core": "~1.6.0",
"@swc/helpers": "~0.5.0",
"@commitlint/cli": "^19.0.0",
Expand Down

0 comments on commit c99dc31

Please sign in to comment.