text: 'use strict';
  
  const contentManagerService = require('../ContentManager');
  
  describe('Content-Manager', () => {
    const fakeModel = {
      modelName: 'fake model',
    };
  
    describe('Publish', () => {
      beforeEach(() => {
        global.strapi = {
          entityService: {
            update: jest.fn(),
          },
          eventHub: { emit: jest.fn() },
          getModel: jest.fn(() => fakeModel),
        };
      });
  
      afterEach(() => {
        jest.clearAllMocks();
      });
  
      test('Publish a content-type', async () => {
        const model = 'application::test.test';
        const params = { id: 1 };
        await contentManagerService.publish(params, model);
  
        expect(strapi.entityService.update).toBeCalledWith(
          { params, data: { published_at: expect.any(Date) } },
          { model }
        );
      });
    });
  
    describe('Unpublish', () => {
      beforeEach(() => {
        global.strapi = {
          entityService: {
            update: jest.fn(),
          },
          eventHub: { emit: jest.fn() },
          getModel: jest.fn(() => fakeModel),
        };
      });
  
      afterEach(() => {
        jest.clearAllMocks();
      });
  
      test('Unpublish a content-type', async () => {
        const model = 'application::test.test';
        const params = { id: 1 };
        await contentManagerService.unpublish(params, model);
  
        expect(strapi.entityService.update).toHaveBeenCalledWith(
          { params, data: { published_at: null } },
          { model }
        );
      });
    });
  });
  