wopian/kitsu

View on GitHub
packages/kitsu-core/src/splitModel/index.spec.js

Summary

Maintainability
A
0 mins
Test Coverage
import { splitModel } from './'
import { kebab, snake } from '../'
import plural from 'pluralize'

describe('kitsu-core', () => {
  describe('splitModel', () => {
    it('anime -> anime', () => {
      expect.assertions(1)
      expect(splitModel('anime'))
        .toStrictEqual([ 'anime', 'anime' ])
    })

    it('anime -> anime (plural, mass noun)', () => {
      expect.assertions(1)
      expect(splitModel('anime', {
        pluralModel: plural
      }))
        .toStrictEqual([ 'anime', 'anime' ])
    })

    it('post -> post', () => {
      expect.assertions(1)
      expect(splitModel('post'))
        .toStrictEqual([ 'post', 'post' ])
    })

    it('post -> posts (plural)', () => {
      expect.assertions(1)
      expect(splitModel('post', {
        pluralModel: plural
      }))
        .toStrictEqual([ 'post', 'posts' ])
    })

    it('post/1/relationships/comment -> comment', () => {
      expect.assertions(1)
      expect(splitModel('post/1/relationships/comment'))
        .toStrictEqual([ 'comment', 'post/1/relationships/comment' ])
    })

    it('post/1/relationships/comment -> comment (plural)', () => {
      expect.assertions(1)
      expect(splitModel('post/1/relationships/comment', {
        pluralModel: plural
      }))
        .toStrictEqual([ 'comment', 'post/1/relationships/comments' ])
    })

    it('libraryEntry -> library-entry', () => {
      expect.assertions(1)
      expect(splitModel('libraryEntry', {
        resourceCase: kebab
      }))
        .toStrictEqual([ 'libraryEntry', 'library-entry' ])
    })

    it('libraryEntry -> library_entry', () => {
      expect.assertions(1)
      expect(splitModel('libraryEntry', {
        resourceCase: snake
      }))
        .toStrictEqual([ 'libraryEntry', 'library_entry' ])
    })
  })
})