Testing file

 avatar
unknown
typescript
4 years ago
5.0 kB
3
Indexable
import supertest from 'supertest'
import { App } from '@scnode_app/app'

// @import test_helpers
import { getGlobalAuth } from '@scnode_tests/helpers/auth/authHelpers'
// @end

import {
  AcademicResourceConfigCategory,
  AcademicResourceConfig,
  AcademicResourceCategory,
  AcademicResource,
  Structure,
  StructureCategory,
  User,
} from '@scnode_app/models'

import {
  demoStructure,
  demoStructureCategory,
} from '@scnode_tests/helpers/mocks/global/alliance/structure/structureMock'

import {
  demoAcademicResourceCategory,
  demoAcademicResourceConfigCategory,
  demoAcademicResource,
  demoAcademicResourceConfig,
} from '@scnode_tests/helpers/mocks/lms/academicContent/academicResource/academicResourceMock'



import {
  demoUser
} from '@scnode_tests/helpers/mocks/global/user/userMock'

import { generalUtility } from '@scnode_core/utilities/generalUtility'


const app = new App('test').app
const api = supertest(app)
jest.setTimeout(10000)



describe('Academicgroup Test Suite', () => {

  /*===============================================
    =            Estructura de un test            =
    ================================================
      // La estructura de un test debe ser la siguiente:
      test('ModuleName: /route - description of what is expected', async () => {})
    /*======  End of Estructura de un test  =====*/


  test('academicGroup: / - success', async () => {
    const { token, alliance } = await getGlobalAuth({ system: 'lms' })

    await api
      .get(`/api/academic-group-info/${alliance.id}/`)
      .set('authorization', token)
      .expect(200)
      .expect((res) => {
        expect(res.body.academicGroupResources).toBeDefined()
        expect(res.body.total_register).toBeDefined()
        expect(res.body.pageNumber).toBeDefined()
        expect(res.body.nPerPage).toBeDefined()
      })

  })

  /*===============================================
        =            Estructura de un test            =
        ================================================
          // La estructura de un test debe ser la siguiente:
          test('ModuleName: /route - description of what is expected', async () => {})
        /*======  End of Estructura de un test  =====*/

  let structureId: string | null = null


  test('academicGroup: / - success', async () => {
    const { token, alliance } = await getGlobalAuth({ system: 'lms' })
    const preObjects = await preCreate(alliance.id)

    structureId = preObjects.structure._id

    await api
      .get(`/api/academic-group-info/${structureId}/`)
      .set('authorization', token)
      .expect(200)
      .expect((res) => {
        expect(res.body.academicGroupResources).toBeDefined()
        expect(res.body.total_register).toBeDefined()
        expect(res.body.pageNumber).toBeDefined()
        expect(res.body.nPerPage).toBeDefined()
      })
  })


  const randomChain = generalUtility.buildRandomChain({
    characters: 16,
    numbers: 1,
    symbols: 0,
    uppercase: 0,
    lowercase: 1,
  })


  test('academicGroup: / - structure not found', async () => {
    const { token } = await getGlobalAuth({ system: 'lms' })

    await api
      .get(`/api/academic-group-info/${randomChain}/`)
      .set('authorization', token)
      .expect(400)
  })



  test('AcademicGroupResource: /:id - fail request, alliance not found', async () => {

    const { token } = await getGlobalAuth({ system: 'lms' })

    await api
      .get(`/api/academic-group-info/${randomChain}/`)
      .set('authorization', token)
      .expect(500)
  })
})


const preCreate = async (alliance_id: string) => {
  try {
    const academicResourceCategory = await AcademicResourceCategory.create(demoAcademicResourceCategory)
    const academicResourceConfigCategory = await AcademicResourceConfigCategory.create(demoAcademicResourceConfigCategory)

    demoAcademicResource.alliance_id = alliance_id
    demoAcademicResource.academic_resource_category = academicResourceCategory._id
    const academicResource = await AcademicResource.create(demoAcademicResource)

    demoAcademicResourceConfig.alliance_id = alliance_id
    demoAcademicResourceConfig.academic_resource = academicResource._id
    demoAcademicResourceConfig.source.config_category = academicResourceConfigCategory._id
    const academicResourceConfig = await AcademicResourceConfig.create(demoAcademicResourceConfig)

    demoStructureCategory.alliance_id = alliance_id
    const structureCategory = await StructureCategory.create(demoStructureCategory)

    demoStructure.alliance_id = alliance_id
    demoStructure.structure_category_id = structureCategory._id
    const structure = await Structure.create(demoStructure)

    demoUser.alliance_id = alliance_id
    const user = await User.create(demoUser)

    return {
      academicResourceCategory,
      academicResourceConfigCategory,
      academicResource,
      academicResourceConfig,
      structureCategory,
      structure,
      user,
    }

  } catch (e) {
    return null
  }
}



Editor is loading...