Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,3 @@ <h1 class="mb-8 mt-4 text-4xl font-extrabold leading-none tracking-tight text-gr
}
</div>
</div>
@if(feedback){
<feedback-modal
rateMessage="Based on your recent experience, how likely are you to recommend DOME to a colleague or a partner?"
writeMessage="How can we improve DOME?"
type="recommendation"
class="fixed inset-0 flex items-center justify-center z-40"></feedback-modal>
}
26 changes: 3 additions & 23 deletions src/app/pages/seller-offerings/seller-offerings.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,31 +84,11 @@ describe('SellerOfferingsComponent', () => {
expect(goToUpdateOfferSpy).toHaveBeenCalled();
});

it('event subscription should close feedback on CloseFeedback', () => {
component.feedback = true;

eventMessage.emitCloseFeedback(false);

expect(component.feedback).toBeFalse();
});

it('event subscription should show feedback after product spec creation only for DOME theme', () => {
component.feedback = false;
component.isDomeTheme = true;
component.userInfo = { expire: 9999999999 };

eventMessage.emitSellerProductSpec(true);

expect(component.feedback).toBeTrue();
});

it('event subscription should not show feedback for non-DOME theme', () => {
component.feedback = false;
component.isDomeTheme = false;
component.userInfo = { expire: 9999999999 };
it('event subscription should route to product specs after product spec creation', () => {
const goToProdSpecSpy = spyOn(component, 'goToProdSpec');

eventMessage.emitSellerProductSpec(true);

expect(component.feedback).toBeFalse();
expect(goToProdSpecSpy).toHaveBeenCalled();
});
});
18 changes: 0 additions & 18 deletions src/app/pages/seller-offerings/seller-offerings.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,8 @@ import {components} from "src/app/models/product-catalog";
type Catalog = components["schemas"]["Catalog"];
import { environment } from 'src/environments/environment';
import { ApiServiceService } from 'src/app/services/product-service.service';
import {LocalStorageService} from "src/app/services/local-storage.service";
import { LoginInfo } from 'src/app/models/interfaces';
import { initFlowbite } from 'flowbite';
import {EventMessageService} from "../../services/event-message.service";
import * as moment from 'moment';
import { firstValueFrom, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { QuoteService } from 'src/app/features/quotes/services/quote.service';
Expand Down Expand Up @@ -44,9 +41,6 @@ export class SellerOfferingsComponent implements OnInit, OnDestroy {
offer_to_update:any;
custom_offer_partyId:any=null;
catalog_to_update:any;
feedback:boolean=false;
isDomeTheme: boolean = (environment.providerThemeName || '').toUpperCase() === 'DOME';
userInfo:any;
activeSection: string = 'catalogs'; // default
sectionActions : Record<string, () => void> = {
catalogs: this.goToCatalogs,
Expand All @@ -60,7 +54,6 @@ export class SellerOfferingsComponent implements OnInit, OnDestroy {
private destroy$ = new Subject<void>();

constructor(
private localStorage: LocalStorageService,
private cdr: ChangeDetectorRef,
private eventMessage: EventMessageService,
private router: Router,
Expand All @@ -71,13 +64,6 @@ export class SellerOfferingsComponent implements OnInit, OnDestroy {
.pipe(takeUntil(this.destroy$))
.subscribe(ev => {
if(ev.type === 'SellerProductSpec') {
if(
ev.value == true &&
this.isDomeTheme &&
(JSON.stringify(this.userInfo) != '{}' && (((this.userInfo.expire - moment().unix())-4) > 0))
) {
this.feedback=true;
}
this.goToProdSpec();
}
if(ev.type === 'SellerCreateProductSpec' && ev.value == true) {
Expand Down Expand Up @@ -133,14 +119,10 @@ export class SellerOfferingsComponent implements OnInit, OnDestroy {
this.catalog_to_update=ev.value;
this.goToUpdateCatalog();
}
if(ev.type === 'CloseFeedback') {
this.feedback = false;
}
})
}

async ngOnInit() {
this.userInfo = this.localStorage.getObject('login_items') as LoginInfo;
const saved = localStorage.getItem('activeSection');
console.log(saved)
if (saved) this.activeSection = saved;
Expand Down
10 changes: 7 additions & 3 deletions src/app/services/google-tag-manager.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ import { GoogleTagManagerService } from './google-tag-manager.service';
describe('GoogleTagManagerService', () => {
let service: GoogleTagManagerService;
let originalDataLayer: unknown;
let insertBeforeSpy: jasmine.Spy;

beforeEach(() => {
originalDataLayer = (window as any).dataLayer;
insertBeforeSpy = spyOn(document.head, 'insertBefore').and.callFake(<T extends Node>(newNode: T) => newNode);

TestBed.configureTestingModule({});
service = TestBed.inject(GoogleTagManagerService);
Expand All @@ -25,10 +27,11 @@ describe('GoogleTagManagerService', () => {
it('inserts the Google Tag Manager script as the first head element', () => {
service.init('GTM-WPKH4HCS');

const firstHeadElement = document.head.firstElementChild as HTMLScriptElement;
const insertedScript = insertBeforeSpy.calls.mostRecent().args[0] as HTMLScriptElement;

expect(firstHeadElement.tagName).toBe('SCRIPT');
expect(firstHeadElement.src).toBe('https://www.googletagmanager.com/gtm.js?id=GTM-WPKH4HCS');
expect(insertBeforeSpy).toHaveBeenCalledOnceWith(insertedScript, document.head.firstChild);
expect(insertedScript.tagName).toBe('SCRIPT');
expect(insertedScript.src).toBe('https://www.googletagmanager.com/gtm.js?id=GTM-WPKH4HCS');
expect((window as any).dataLayer[0].event).toBe('gtm.js');
});

Expand All @@ -37,5 +40,6 @@ describe('GoogleTagManagerService', () => {
service.init('not-a-gtm-id');

expect(document.querySelector('script[src^="https://www.googletagmanager.com/gtm.js"]')).toBeNull();
expect(insertBeforeSpy).not.toHaveBeenCalled();
});
});
Loading