Skip to content
This repository has been archived by the owner on Dec 16, 2024. It is now read-only.

Commit

Permalink
dotCMS/core#21507 add state management to Dot Palette
Browse files Browse the repository at this point in the history
  • Loading branch information
alfredo-dotcms committed Jan 26, 2022
1 parent c694f29 commit 2005bfa
Show file tree
Hide file tree
Showing 10 changed files with 391 additions and 265 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,38 @@ import { DotPaletteInputFilterModule } from '../dot-palette-input-filter/dot-pal
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { CoreWebService, CoreWebServiceMock } from '@dotcms/dotcms-js';

const data = [
export const contentTypeDataMock = [
{
baseType: 'Product',
clazz: '',
defaultType: false,
icon: 'cloud',
id: 'a1661fbc-9e84-4c00-bd62-76d633170da3',
name: 'Product',
variable: 'Product'
},
{
baseType: 'Blog',
clazz: '',
defaultType: false,
icon: 'alt_route',
id: '799f176a-d32e-4844-a07c-1b5fcd107578',
name: 'Blog',
variable: 'Blog'
},
{
baseType: 'Form',
clazz: '',
defaultType: false,
icon: 'cloud',
id: '897cf4a9-171a-4204-accb-c1b498c813fe',
name: 'Contact',
variable: 'Form'
},
{
baseType: 'Text',
clazz: '',
defaultType: false,
icon: 'person',
id: '6044a806-f462-4977-a353-57539eac2a2c',
name: 'Long name Blog Comment',
Expand Down Expand Up @@ -61,10 +73,7 @@ describe('DotPaletteContentTypeComponent', () => {

beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
TestHostComponent,
DotPaletteContentTypeComponent
],
declarations: [TestHostComponent, DotPaletteContentTypeComponent],
imports: [
DotPipesModule,
DotIconModule,
Expand All @@ -75,7 +84,7 @@ describe('DotPaletteContentTypeComponent', () => {
],
providers: [
{ provide: DotContentletEditorService, useClass: MockDotContentletEditorService },
{ provide: CoreWebService, useClass: CoreWebServiceMock },
{ provide: CoreWebService, useClass: CoreWebServiceMock }
]
});

Expand All @@ -89,7 +98,7 @@ describe('DotPaletteContentTypeComponent', () => {
});

it('should list items correctly', () => {
componentHost.items = data;
componentHost.items = contentTypeDataMock;
fixtureHost.detectChanges();
const contents = fixtureHost.debugElement.queryAll(By.css('[data-testId="paletteItem"]'));
expect(contents.length).toEqual(4);
Expand All @@ -104,7 +113,7 @@ describe('DotPaletteContentTypeComponent', () => {
});

it('should filter items on search', () => {
componentHost.items = data;
componentHost.items = contentTypeDataMock;
fixtureHost.detectChanges();
const input = fixtureHost.debugElement.query(By.css('dot-palette-input-filter'));
input.componentInstance.filter.emit('Product');
Expand All @@ -114,24 +123,22 @@ describe('DotPaletteContentTypeComponent', () => {
});

it('should set Dragged ContentType on dragStart', () => {
componentHost.items = data;
componentHost.items = contentTypeDataMock;
fixtureHost.detectChanges();
const content = fixtureHost.debugElement.query(By.css('[data-testId="paletteItem"]'));
content.triggerEventHandler('dragstart', data[0]);
content.triggerEventHandler('dragstart', contentTypeDataMock[0]);
expect(dotContentletEditorService.setDraggedContentType).toHaveBeenCalledOnceWith(
data[0] as DotCMSContentType
contentTypeDataMock[0] as DotCMSContentType
);
});

it('should emit event to show a specific contentlet', () => {
componentHost.items = data;
componentHost.items = contentTypeDataMock;
spyOn(de.componentInstance.selected, 'emit').and.callThrough();
fixtureHost.detectChanges();
const buttons = fixtureHost.debugElement.queryAll(
By.css('[data-testId="paletteItem"]')
);
const buttons = fixtureHost.debugElement.queryAll(By.css('[data-testId="paletteItem"]'));
buttons[3].nativeElement.click();
expect(de.componentInstance.itemsFiltered).toEqual(data);
expect(de.componentInstance.itemsFiltered).toEqual(contentTypeDataMock);
expect(de.componentInstance.selected.emit).toHaveBeenCalledWith('Text');
});
});
Loading

0 comments on commit 2005bfa

Please sign in to comment.