Spaces:
Running
Running
| const test = require('node:test'); | |
| const assert = require('node:assert/strict'); | |
| const { | |
| getSingleAssignmentPositionKey, | |
| getSingleAssignmentPositionLabel, | |
| getSingleAssignmentPositionRegex, | |
| } = require('../validation/facultyValidation'); | |
| test('single-assignment position key supports canonical and legacy spellings', () => { | |
| assert.equal(getSingleAssignmentPositionKey('Head of Department'), 'head-of-department'); | |
| assert.equal(getSingleAssignmentPositionKey('Head of the Department'), 'head-of-department'); | |
| assert.equal(getSingleAssignmentPositionKey('Secretary'), 'secretary'); | |
| assert.equal(getSingleAssignmentPositionKey('Head of Laboratory'), 'head-of-laboratory'); | |
| assert.equal(getSingleAssignmentPositionKey('Head of the Laboratory'), 'head-of-laboratory'); | |
| }); | |
| test('single-assignment position label returns canonical role labels', () => { | |
| assert.equal(getSingleAssignmentPositionLabel('head of department'), 'Head of the Department'); | |
| assert.equal(getSingleAssignmentPositionLabel('SECRETARY'), 'Secretary'); | |
| assert.equal(getSingleAssignmentPositionLabel('head of laboratory'), 'Head of the Laboratory'); | |
| assert.equal(getSingleAssignmentPositionLabel('Lecturer'), ''); | |
| }); | |
| test('single-assignment position regex matches aliases and skips other roles', () => { | |
| const departmentRegex = getSingleAssignmentPositionRegex('head of department'); | |
| assert.ok(departmentRegex instanceof RegExp); | |
| assert.equal(departmentRegex.test('Head of Department'), true); | |
| assert.equal(departmentRegex.test('Head of the Department'), true); | |
| const secretaryRegex = getSingleAssignmentPositionRegex('secretary'); | |
| assert.ok(secretaryRegex instanceof RegExp); | |
| assert.equal(secretaryRegex.test('Secretary'), true); | |
| assert.equal(secretaryRegex.test('Senior Secretary'), false); | |
| const nonRestrictedRegex = getSingleAssignmentPositionRegex('Lecturer'); | |
| assert.equal(nonRestrictedRegex, null); | |
| }); | |