zotero-ts-api
Version:
A TypeScript API wrapper for Zotero
107 lines • 4.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const ZCreator_1 = require("./ZCreator");
(0, vitest_1.describe)('ZCreator', () => {
(0, vitest_1.describe)('Constructor', () => {
(0, vitest_1.it)('should create creator with full name', () => {
const data = {
creatorType: 'author',
firstName: 'John',
lastName: 'Doe'
};
const creator = new ZCreator_1.ZCreator(data);
(0, vitest_1.expect)(creator.creatorType).toBe('author');
(0, vitest_1.expect)(creator.firstName).toBe('John');
(0, vitest_1.expect)(creator.lastName).toBe('Doe');
(0, vitest_1.expect)(creator.name).toBeUndefined();
});
(0, vitest_1.it)('should create creator with single name', () => {
const data = {
creatorType: 'author',
name: 'UNESCO'
};
const creator = new ZCreator_1.ZCreator(data);
(0, vitest_1.expect)(creator.creatorType).toBe('author');
(0, vitest_1.expect)(creator.name).toBe('UNESCO');
(0, vitest_1.expect)(creator.firstName).toBeUndefined();
(0, vitest_1.expect)(creator.lastName).toBeUndefined();
});
});
(0, vitest_1.describe)('Getters', () => {
(0, vitest_1.it)('should return all properties correctly', () => {
const data = {
creatorType: 'editor',
firstName: 'Jane',
lastName: 'Smith'
};
const creator = new ZCreator_1.ZCreator(data);
(0, vitest_1.expect)(creator.creatorType).toBe('editor');
(0, vitest_1.expect)(creator.firstName).toBe('Jane');
(0, vitest_1.expect)(creator.lastName).toBe('Smith');
});
});
(0, vitest_1.describe)('Setters', () => {
let creator;
(0, vitest_1.beforeEach)(() => {
creator = new ZCreator_1.ZCreator({
creatorType: 'author',
firstName: 'John',
lastName: 'Doe'
});
});
(0, vitest_1.it)('should set creatorType', () => {
creator.creatorType = 'editor';
(0, vitest_1.expect)(creator.creatorType).toBe('editor');
});
(0, vitest_1.it)('should set firstName', () => {
creator.firstName = 'Jane';
(0, vitest_1.expect)(creator.firstName).toBe('Jane');
});
(0, vitest_1.it)('should set lastName', () => {
creator.lastName = 'Smith';
(0, vitest_1.expect)(creator.lastName).toBe('Smith');
});
(0, vitest_1.it)('should set name and clear first/last names', () => {
creator.name = 'Organization';
(0, vitest_1.expect)(creator.name).toBe('Organization');
(0, vitest_1.expect)(creator.firstName).toBeUndefined();
(0, vitest_1.expect)(creator.lastName).toBeUndefined();
});
(0, vitest_1.it)('should clear name when setting firstName', () => {
creator.name = 'Organization';
creator.firstName = 'John';
(0, vitest_1.expect)(creator.firstName).toBe('John');
(0, vitest_1.expect)(creator.name).toBeUndefined();
});
(0, vitest_1.it)('should clear name when setting lastName', () => {
creator.name = 'Organization';
creator.lastName = 'Doe';
(0, vitest_1.expect)(creator.lastName).toBe('Doe');
(0, vitest_1.expect)(creator.name).toBeUndefined();
});
});
(0, vitest_1.describe)('toJSON()', () => {
(0, vitest_1.it)('should return creator data for full name', () => {
const data = {
creatorType: 'author',
firstName: 'John',
lastName: 'Doe'
};
const creator = new ZCreator_1.ZCreator(data);
const json = creator.toJSON();
(0, vitest_1.expect)(json).toEqual(data);
(0, vitest_1.expect)(json).not.toBe(data);
});
(0, vitest_1.it)('should return creator data for single name', () => {
const data = {
creatorType: 'author',
name: 'UNESCO'
};
const creator = new ZCreator_1.ZCreator(data);
const json = creator.toJSON();
(0, vitest_1.expect)(json).toEqual(data);
});
});
});
//# sourceMappingURL=ZCreator.test.js.map