| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- import { describe, expect, test } from 'vitest'
- import { getSchemaAsMarkdown, getTableDefinitionAsMarkdown } from './Schemas.utils'
- describe('Schemas.utils', () => {
- test('getSchemaAsMarkdown returns properly formatted markdown', () => {
- const schema = 'public'
- const tables = [
- {
- ref: 'default',
- id: 20999,
- name: 'test',
- description: 'An excellent description',
- schema: 'public',
- isForeign: false,
- columns: [
- {
- id: '20999.1',
- isPrimary: true,
- name: 'id',
- format: 'int8',
- isNullable: false,
- isUnique: false,
- isUpdateable: true,
- isIdentity: true,
- description: '',
- },
- {
- id: '20999.2',
- isPrimary: false,
- name: 'created_at',
- format: 'timestamptz',
- isNullable: false,
- isUnique: false,
- isUpdateable: true,
- isIdentity: false,
- description: '',
- },
- {
- id: '20999.3',
- isPrimary: false,
- name: 'user_id',
- format: 'uuid',
- isNullable: true,
- isUnique: false,
- isUpdateable: true,
- isIdentity: false,
- description: '',
- },
- ],
- },
- {
- ref: 'default',
- id: 21049,
- name: 'test2',
- description: '',
- schema: 'public',
- isForeign: false,
- columns: [
- {
- id: '21049.1',
- isPrimary: true,
- name: 'id',
- format: 'int8',
- isNullable: false,
- isUnique: false,
- isUpdateable: true,
- isIdentity: true,
- description: '',
- },
- {
- id: '21049.2',
- isPrimary: false,
- name: 'created_at',
- format: 'timestamptz',
- isNullable: false,
- isUnique: false,
- isUpdateable: true,
- isIdentity: false,
- description: '',
- },
- ],
- },
- {
- id: 21009,
- ref: 'default',
- schema: 'auth',
- name: 'auth.users.id',
- description: '',
- isForeign: true,
- columns: [],
- },
- ]
- const result = getSchemaAsMarkdown(schema, tables)
- expect(result).toBe(`## Table \`test\`
- An excellent description
- ### Columns
- | Name | Type | Constraints |
- |------|------|-------------|
- | \`id\` | \`int8\` | Primary Identity |
- | \`created_at\` | \`timestamptz\` | |
- | \`user_id\` | \`uuid\` | Nullable |
- ## Table \`test2\`
- ### Columns
- | Name | Type | Constraints |
- |------|------|-------------|
- | \`id\` | \`int8\` | Primary Identity |
- | \`created_at\` | \`timestamptz\` | |
- `)
- })
- test('getTableDefinitionAsMarkdown returns properly formatted markdown', () => {
- const table = {
- ref: 'default',
- id: 20999,
- name: 'test',
- description: 'An excellent description',
- schema: 'public',
- isForeign: false,
- columns: [
- {
- id: '20999.1',
- isPrimary: true,
- name: 'id',
- format: 'int8',
- isNullable: false,
- isUnique: false,
- isUpdateable: true,
- isIdentity: true,
- description: '',
- },
- {
- id: '20999.2',
- isPrimary: false,
- name: 'created_at',
- format: 'timestamptz',
- isNullable: false,
- isUnique: false,
- isUpdateable: true,
- isIdentity: false,
- description: '',
- },
- {
- id: '20999.3',
- isPrimary: false,
- name: 'user_id',
- format: 'uuid',
- isNullable: true,
- isUnique: false,
- isUpdateable: true,
- isIdentity: false,
- description: '',
- },
- ],
- }
- const result = getTableDefinitionAsMarkdown(table)
- expect(result).toBe(`## Table \`test\`
- An excellent description
- ### Columns
- | Name | Type | Constraints |
- |------|------|-------------|
- | \`id\` | \`int8\` | Primary Identity |
- | \`created_at\` | \`timestamptz\` | |
- | \`user_id\` | \`uuid\` | Nullable |
- `)
- })
- })
|