| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const SandboxedModule = require('sandboxed-module')
- const { expect } = require('chai')
- const sinon = require('sinon')
- const { ObjectId } = require('mongodb-legacy')
- const MODULE_PATH = '../../../../app/src/Features/Tutorial/TutorialHandler'
- describe('TutorialHandler', function () {
- beforeEach(function () {
- this.clock = sinon.useFakeTimers()
- this.user = {
- _id: new ObjectId(),
- completedTutorials: {
- 'legacy-format': new Date(Date.now() - 1000),
- completed: {
- state: 'completed',
- updatedAt: new Date(Date.now() - 1000),
- },
- 'postponed-recently': {
- state: 'postponed',
- updatedAt: new Date(Date.now() - 1000),
- },
- 'postponed-long-ago': {
- state: 'postponed',
- updatedAt: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000),
- },
- },
- }
- this.UserUpdater = {
- promises: {
- updateUser: sinon.stub().resolves(),
- },
- }
- this.TutorialHandler = SandboxedModule.require(MODULE_PATH, {
- requires: {
- '../User/UserUpdater': this.UserUpdater,
- },
- })
- })
- afterEach(function () {
- this.clock.restore()
- })
- describe('getInactiveTutorials', function () {
- it('returns all recorded tutorials except when they were posponed long ago', function () {
- const hiddenTutorials = this.TutorialHandler.getInactiveTutorials(
- this.user
- )
- expect(hiddenTutorials).to.have.members([
- 'legacy-format',
- 'completed',
- 'postponed-recently',
- ])
- })
- })
- })
|