-
Notifications
You must be signed in to change notification settings - Fork 0
Colabora con Modelator!
- Crear/depurar fields
- Crear los test para los fields. Se puede realizar el test independientemente de si está creado el field.
Rama para trabajar: separanting-fields-code
Se implementan en /lib/fields/
Son los elementos con los que se va a componer el schema. Dicho de otro modo, un schema se compone de fields. Por lo tanto hay que pensar qué tipos de campos de entrada en UX existen: texto, fecha, número,...
Cada field está en un fichero independiente, como puedes ver en el repo.
Actualmente estén realizadas:
- Text
- Int
- Select
Se dan por realizadas cuando tienen los testy está implementado el funcionamiento interno de la misma. Exponemos la lógica que se sigue cada field de los ya realizados:
-
Text. Será un texto, por lo que si se intenta setear (onSet)un valor que no es texto se emite un error. La llamada a la clase text será a sí:
new Text({id:'text'})
Esto creará en el schema un tipo texto, cuyo funcionamiento interno, estará definido en la clase. Como se puede observar, se comprueban en este campo las acciones de update e insert. -
Int. Será un Integer, por lo que si se intenta setear (onSet) un valor que no es texto se emite un error. Llamada:
new Int({id:myInt})
-
Select. Aquí es donde hay que dar especial énfasis al UX, la trasversalidad del elemento en la infraestructura y a los test que debe pasar. ¿Cómo puede ser un select?: selector único o selector múltiple
Llamada: new Select({ id:'select', multiple: true, values : ['A','B','C','D'] })
Los test que debería pasar field deberían ser:
-
- Si el elemento que llega es uno de los valores permitidos
-
- Si no es múltiple, que solo llegue un elemento
-
- Si es múltiple, que los elementos que lleguen estén dentro de los permitidos
-
- Si se intenta insertar valores duplicados, error.
-
- _Está pendiente estudiar si los valores del select pueden ser objetos o arrays... _
Para los elementos que faltan por revisar la implementación y realizar los test, se expone también una propuesta de lógica:
- Checkbox. Será true o false. Si se intenta setear (onSet) un valor no boolean -> error.
- Checkboxes. Conjunto de checkbox. Podrá ser múltiple o no. Los valores para cada una de las opciones deberá ser true o false.
- Img. Estoy hay que estudiarlo porque afecta al sistema de almacenamiento de imágenes.
- Radios. Conjunto de elementos de los que sólo se puede seleccionar uno.
- Time. Formato 00-00-0000 ¿otro formato?, el valor que llega tiene que ser tipo fecha
Pendientes sin la implementación inicial, ni lógica:
- File
- Video
- Datetime
- Timestamp
Cuando vayas a definir una tarea, indícalo y cambia tu nombre en la cabecera del archivo que vayas a implementar.