///////////////////////////////////////////////////////////// // // pgAdmin 4 - PostgreSQL Tools // // Copyright (C) 2013 - 2024, The pgAdmin Development Team // This software is released under the PostgreSQL Licence // ////////////////////////////////////////////////////////////// import BaseUISchema from 'sources/SchemaView/base_schema.ui'; import LanguageSchema from '../../../pgadmin/browser/server_groups/servers/databases/languages/static/js/language.ui'; import {genericBeforeEach, getCreateView, getEditView, getPropertiesView} from '../genericFunctions'; class MockSchema extends BaseUISchema { get baseFields() { return []; } } describe('LanguageSchema', ()=>{ const createSchemaObj = () => new LanguageSchema( ()=>new MockSchema(), { lan_functions: ()=>[], templates_data: ()=>[], }, { node_info: {connected: true, user: {id: 10, name: 'postgres', is_superuser: true, can_create_role: true, can_create_db: true}, user_id: 1, username: 'postgres', version: 120005, }, }, ); let schemaObj = createSchemaObj(); let getInitData = ()=>Promise.resolve({}); beforeEach(()=>{ genericBeforeEach(); }); it('create', async ()=>{ await getCreateView(createSchemaObj()); }); it('edit', async ()=>{ await getEditView(createSchemaObj(), getInitData); }); it('properties', async ()=>{ await getPropertiesView(createSchemaObj(), getInitData); }); it('validate', ()=>{ let state = {}; let setError = jest.fn(); state.lanproc = ''; schemaObj.isTemplate = true; schemaObj.validate(state, setError); expect(setError).toHaveBeenCalledWith('lanproc', 'Handler function cannot be empty.'); state.lanproc = 'my_len'; schemaObj.validate(state, setError); expect(setError).toHaveBeenCalledWith('lanproc', null); }); });