Skip to content

Commit 7cb6c3b

Browse files
committed
Add tests for list courses
1 parent 4aefd93 commit 7cb6c3b

File tree

2 files changed

+67
-4
lines changed

2 files changed

+67
-4
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import faker from 'faker';
2+
3+
describe('List courses', () => {
4+
before(() => {
5+
cy.task('reset:backoffice:db');
6+
cy.task(
7+
'publish:course:created',
8+
JSON.stringify({
9+
data: {
10+
id: 'c77fa036-cbc7-4414-996b-c6a7a93cae10',
11+
type: 'course.created',
12+
occurred_on: '2019-08-08T08:37:32+00:00',
13+
attributes: {
14+
id: '8c900b20-e04a-4777-9183-32faab6d2fb6',
15+
name: 'DDD en Typescript',
16+
duration: '25 hours'
17+
},
18+
meta: {
19+
host: '111.26.06.93'
20+
}
21+
}
22+
})
23+
);
24+
});
25+
26+
beforeEach(() => {
27+
cy.visit('courses');
28+
});
29+
30+
it('can list courses', () => {
31+
cy.contains('Cursos existentes');
32+
cy.get('#courses-list').find('tr').should('have.length', 1);
33+
cy.get('#courses-list tr').eq(0).should('contain', '8c900b20-e04a-4777-9183-32faab6d2fb6');
34+
cy.get('#courses-list tr').eq(0).should('contain', 'DDD en Typescript');
35+
cy.get('#courses-list tr').eq(0).should('contain', '25 hours');
36+
});
37+
});
Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,41 @@
1-
import container from '../../../../src/apps/mooc_backend/config/dependency-injection';
1+
import moocContainer from '../../../../src/apps/mooc_backend/config/dependency-injection';
2+
import backendBackofficecontainer from '../../../../src/apps/backoffice/backend/config/dependency-injection';
23
import { EnvironmentArranger } from '../../../Contexts/Shared/infrastructure/arranger/EnvironmentArranger';
34
import { seed } from '../../../../src/apps/backoffice/frontend/seed';
5+
import { EventBus } from '../../../../src/Contexts/Shared/domain/EventBus';
6+
import { DomainEventJsonDeserializer } from '../../../../src/Contexts/Shared/infrastructure/EventBus/DomainEventJsonDeserializer';
7+
import { registerSubscribers } from '../../../../src/apps/backoffice/backend/subscribers';
8+
import Cypress from 'cypress';
49

5-
const environmentArranger: Promise<EnvironmentArranger> = container.get('Mooc.EnvironmentArranger');
10+
const moocEnvironmentArranger: Promise<EnvironmentArranger> = moocContainer.get('Mooc.EnvironmentArranger');
11+
const BackofficeBackendEnvironmentArranger: Promise<EnvironmentArranger> = backendBackofficecontainer.get(
12+
'Backoffice.Backend.EnvironmentArranger'
13+
);
14+
15+
const eventBus = backendBackofficecontainer.get('Shared.EventBus') as EventBus;
16+
const deserializer = backendBackofficecontainer.get(
17+
'Shared.EventBus.DomainEventJsonDeserializer'
18+
) as DomainEventJsonDeserializer;
19+
registerSubscribers();
620

721
export default (on: Cypress.PluginEvents, config: Cypress.PluginConfig) => {
822
on('task', {
9-
async 'reset:db'() {
10-
await (await environmentArranger).arrange();
23+
async 'reset:mooc:db'() {
24+
await (await moocEnvironmentArranger).arrange();
25+
await seed();
26+
return null;
27+
},
28+
29+
async 'reset:backoffice:db'() {
30+
await (await BackofficeBackendEnvironmentArranger).arrange();
1131
await seed();
1232
return null;
33+
},
34+
35+
async 'publish:course:created'(event) {
36+
const domainEvent = deserializer.deserialize(event);
37+
await eventBus.publish([domainEvent]);
38+
return null;
1339
}
1440
});
1541
};

0 commit comments

Comments
 (0)