|
|
@ -10,12 +10,14 @@ import { IMock, It, Mock, Times } from 'typemoq'; |
|
|
|
|
|
|
|
|
import { |
|
|
import { |
|
|
DialogService, |
|
|
DialogService, |
|
|
PatternDto, |
|
|
PatternsPayload, |
|
|
PatternsService, |
|
|
PatternsService, |
|
|
PatternsState, |
|
|
PatternsState, |
|
|
versioned |
|
|
versioned |
|
|
} from '@app/shared/internal'; |
|
|
} from '@app/shared/internal'; |
|
|
|
|
|
|
|
|
|
|
|
import { createPatterns } from '../services/patterns.service.spec'; |
|
|
|
|
|
|
|
|
import { TestValues } from './_test-helpers'; |
|
|
import { TestValues } from './_test-helpers'; |
|
|
|
|
|
|
|
|
describe('PatternsState', () => { |
|
|
describe('PatternsState', () => { |
|
|
@ -26,10 +28,7 @@ describe('PatternsState', () => { |
|
|
version |
|
|
version |
|
|
} = TestValues; |
|
|
} = TestValues; |
|
|
|
|
|
|
|
|
const oldPatterns = [ |
|
|
const oldPatterns = createPatterns(1, 2, 3); |
|
|
new PatternDto('id1', 'name1', 'pattern1', ''), |
|
|
|
|
|
new PatternDto('id2', 'name2', 'pattern2', '') |
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
let dialogs: IMock<DialogService>; |
|
|
let dialogs: IMock<DialogService>; |
|
|
let patternsService: IMock<PatternsService>; |
|
|
let patternsService: IMock<PatternsService>; |
|
|
@ -49,11 +48,11 @@ describe('PatternsState', () => { |
|
|
describe('Loading', () => { |
|
|
describe('Loading', () => { |
|
|
it('should load patterns', () => { |
|
|
it('should load patterns', () => { |
|
|
patternsService.setup(x => x.getPatterns(app)) |
|
|
patternsService.setup(x => x.getPatterns(app)) |
|
|
.returns(() => of({ payload: oldPatterns, version })).verifiable(); |
|
|
.returns(() => of(versioned(version, oldPatterns))).verifiable(); |
|
|
|
|
|
|
|
|
patternsState.load().subscribe(); |
|
|
patternsState.load().subscribe(); |
|
|
|
|
|
|
|
|
expect(patternsState.snapshot.patterns.values).toEqual(oldPatterns); |
|
|
expect(patternsState.snapshot.patterns.values).toEqual(oldPatterns.items); |
|
|
expect(patternsState.snapshot.version).toEqual(version); |
|
|
expect(patternsState.snapshot.version).toEqual(version); |
|
|
|
|
|
|
|
|
dialogs.verify(x => x.notifyInfo(It.isAnyString()), Times.never()); |
|
|
dialogs.verify(x => x.notifyInfo(It.isAnyString()), Times.never()); |
|
|
@ -61,7 +60,7 @@ describe('PatternsState', () => { |
|
|
|
|
|
|
|
|
it('should show notification on load when reload is true', () => { |
|
|
it('should show notification on load when reload is true', () => { |
|
|
patternsService.setup(x => x.getPatterns(app)) |
|
|
patternsService.setup(x => x.getPatterns(app)) |
|
|
.returns(() => of({ payload: oldPatterns, version })).verifiable(); |
|
|
.returns(() => of(versioned(version, oldPatterns))).verifiable(); |
|
|
|
|
|
|
|
|
patternsState.load(true).subscribe(); |
|
|
patternsState.load(true).subscribe(); |
|
|
|
|
|
|
|
|
@ -74,49 +73,51 @@ describe('PatternsState', () => { |
|
|
describe('Updates', () => { |
|
|
describe('Updates', () => { |
|
|
beforeEach(() => { |
|
|
beforeEach(() => { |
|
|
patternsService.setup(x => x.getPatterns(app)) |
|
|
patternsService.setup(x => x.getPatterns(app)) |
|
|
.returns(() => of({ payload: oldPatterns, version })).verifiable(); |
|
|
.returns(() => of(versioned(version, oldPatterns))).verifiable(); |
|
|
|
|
|
|
|
|
patternsState.load().subscribe(); |
|
|
patternsState.load().subscribe(); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
it('should add pattern to snapshot when created', () => { |
|
|
it('should add pattern to snapshot when created', () => { |
|
|
const newPattern = new PatternDto('id3', 'name3', 'pattern3', ''); |
|
|
const updated = createPatterns(4, 5); |
|
|
|
|
|
|
|
|
const request = { ...newPattern }; |
|
|
const request = { name: 'new', pattern: 'a-z' }; |
|
|
|
|
|
|
|
|
patternsService.setup(x => x.postPattern(app, request, version)) |
|
|
patternsService.setup(x => x.postPattern(app, request, version)) |
|
|
.returns(() => of(versioned(newVersion, newPattern))).verifiable(); |
|
|
.returns(() => of(versioned(newVersion, updated))).verifiable(); |
|
|
|
|
|
|
|
|
patternsState.create(request).subscribe(); |
|
|
patternsState.create(request).subscribe(); |
|
|
|
|
|
|
|
|
expect(patternsState.snapshot.patterns.values).toEqual([...oldPatterns, newPattern]); |
|
|
expectNewPatterns(updated); |
|
|
expect(patternsState.snapshot.version).toEqual(newVersion); |
|
|
|
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
it('should update properties when updated', () => { |
|
|
it('should update properties when updated', () => { |
|
|
const request = { name: 'name2_1', pattern: 'pattern2_1', message: 'message2_1' }; |
|
|
const updated = createPatterns(4, 5); |
|
|
|
|
|
|
|
|
patternsService.setup(x => x.putPattern(app, oldPatterns[1].id, request, version)) |
|
|
const request = { name: 'name2_1', pattern: 'pattern2_1', message: 'message2_1' }; |
|
|
.returns(() => of(versioned(newVersion))).verifiable(); |
|
|
|
|
|
|
|
|
|
|
|
patternsState.update(oldPatterns[1], request).subscribe(); |
|
|
patternsService.setup(x => x.putPattern(app, oldPatterns.items[1], request, version)) |
|
|
|
|
|
.returns(() => of(versioned(newVersion, updated))).verifiable(); |
|
|
|
|
|
|
|
|
const pattern_1 = patternsState.snapshot.patterns.at(1); |
|
|
patternsState.update(oldPatterns.items[1], request).subscribe(); |
|
|
|
|
|
|
|
|
expect(pattern_1.name).toBe(request.name); |
|
|
expectNewPatterns(updated); |
|
|
expect(pattern_1.pattern).toBe(request.pattern); |
|
|
|
|
|
expect(pattern_1.message).toBe(request.message); |
|
|
|
|
|
expect(patternsState.snapshot.version).toEqual(newVersion); |
|
|
|
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
it('should remove pattern from snapshot when deleted', () => { |
|
|
it('should remove pattern from snapshot when deleted', () => { |
|
|
patternsService.setup(x => x.deletePattern(app, oldPatterns[0].id, version)) |
|
|
const updated = createPatterns(4, 5); |
|
|
.returns(() => of(versioned(newVersion))).verifiable(); |
|
|
|
|
|
|
|
|
|
|
|
patternsState.delete(oldPatterns[0]).subscribe(); |
|
|
patternsService.setup(x => x.deletePattern(app, oldPatterns.items[0], version)) |
|
|
|
|
|
.returns(() => of(versioned(newVersion, updated))).verifiable(); |
|
|
|
|
|
|
|
|
expect(patternsState.snapshot.patterns.values).toEqual([oldPatterns[1]]); |
|
|
patternsState.delete(oldPatterns.items[0]).subscribe(); |
|
|
expect(patternsState.snapshot.version).toEqual(newVersion); |
|
|
|
|
|
|
|
|
expectNewPatterns(updated); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
function expectNewPatterns(updated: PatternsPayload) { |
|
|
|
|
|
expect(patternsState.snapshot.patterns.values).toEqual(updated.items); |
|
|
|
|
|
expect(patternsState.snapshot.version).toEqual(newVersion); |
|
|
|
|
|
} |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |