diff --git a/CHANGELOG.md b/CHANGELOG.md index d28b6df0..9e9f7378 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ # Changelog +## [v1.15.1](https://github.com/contentstack/contentstack-management-javascript/tree/v1.15.1) (2024-01-29) + - Feature + - Taxonomy Import/Export test cases are added ## [v1.15.0](https://github.com/contentstack/contentstack-management-javascript/tree/v1.15.0) (2024-01-23) - Feature - Taxonomy Import/Export feature added diff --git a/package.json b/package.json index bc59c6f6..ec1c5e7f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/management", - "version": "1.15.0", + "version": "1.15.1", "description": "The Content Management API is used to manage the content of your Contentstack account", "main": "./dist/node/contentstack-management.js", "browser": "./dist/web/contentstack-management.js", diff --git a/test/api/mock/taxonomy.json b/test/api/mock/taxonomy.json new file mode 100644 index 00000000..51df5308 --- /dev/null +++ b/test/api/mock/taxonomy.json @@ -0,0 +1,8 @@ +{ + "taxonomy": { + "uid": "UID", + "name": "name", + "description": "test" + }, + "terms": [] +} \ No newline at end of file diff --git a/test/api/taxonomy-test.js b/test/api/taxonomy-test.js index 968a7025..b8e331a6 100644 --- a/test/api/taxonomy-test.js +++ b/test/api/taxonomy-test.js @@ -1,4 +1,5 @@ import { expect } from 'chai' +import path from 'path' import { describe, it, setup } from 'mocha' import { jsonReader } from '../utility/fileOperations/readwrite' import { contentstackClient } from '../utility/ContentstackClient.js' @@ -12,6 +13,8 @@ const taxonomy = { description: 'Description for Taxonomy testing' } +const importTaxonomy = { taxonomy: path.join(__dirname, './mock/taxonomy.json') } + var taxonomyUID = '' var taxonomyDelUID = 'taxonomy_testing' @@ -32,6 +35,28 @@ describe('taxonomy api Test', () => { .catch(done) }) + it('Import taxonomy', done => { + makeTaxonomy() + .import(importTaxonomy) + .then((taxonomyResponse) => { + expect(taxonomyResponse.name).to.be.equal("name") + done() + }) + .catch(done) + }) + + it('Export taxonomy', done => { + makeTaxonomy(taxonomyUID) + .export() + .then((taxonomyResponse) => { + expect(taxonomyResponse.uid).to.be.equal(taxonomyUID) + expect(taxonomyResponse.name).to.be.not.equal(null) + done() + }) + .catch(done) + }) + + it('Fetch taxonomy from uid', done => { makeTaxonomy(taxonomyUID) .fetch() diff --git a/test/sanity-check/api/delete-test.js b/test/sanity-check/api/delete-test.js index 3db3563b..1eb145f7 100644 --- a/test/sanity-check/api/delete-test.js +++ b/test/sanity-check/api/delete-test.js @@ -121,6 +121,7 @@ describe('Branch Alias delete api Test', () => { .catch(done) }) }) + function makeEnvironment (uid = null) { return client.stack({ api_key: process.env.API_KEY }).environment(uid) } @@ -136,3 +137,4 @@ function makeDeliveryToken (uid = null) { function makeBranchAlias (uid = null) { return client.stack({ api_key: process.env.API_KEY }).branchAlias(uid) } + diff --git a/test/unit/mock/objects.js b/test/unit/mock/objects.js index 85f0cc09..5c44bad5 100644 --- a/test/unit/mock/objects.js +++ b/test/unit/mock/objects.js @@ -741,6 +741,12 @@ const auditLogsMock = { ] } +const taxonomyImportMock = { + "uid": "UID", + "name": "name", + "description": "test" +} + const taxonomyMock = { uid: 'UID', name: 'name', @@ -883,6 +889,7 @@ export { auditLogsMock, auditLogItemMock, taxonomyMock, + taxonomyImportMock, termsMock, teamsMock, teamUsersMock, diff --git a/test/unit/taxonomy-test.js b/test/unit/taxonomy-test.js index c5f67190..a20d303a 100644 --- a/test/unit/taxonomy-test.js +++ b/test/unit/taxonomy-test.js @@ -1,9 +1,10 @@ import Axios from 'axios' +import path from 'path' import { expect } from 'chai' import { describe, it } from 'mocha' import MockAdapter from 'axios-mock-adapter' -import { Taxonomy } from '../../lib/stack/taxonomy' -import { systemUidMock, stackHeadersMock, taxonomyMock, noticeMock, termsMock } from './mock/objects' +import { Taxonomy, createFormData, TaxonomyCollection } from '../../lib/stack/taxonomy' +import { systemUidMock, stackHeadersMock, taxonomyMock, noticeMock, termsMock, taxonomyImportMock } from './mock/objects' describe('Contentstack Taxonomy test', () => { it('taxonomy create test', done => { @@ -122,6 +123,51 @@ describe('Contentstack Taxonomy test', () => { done() }) + it('Taxonomy export test', done => { + var mock = new MockAdapter(Axios) + mock.onGet('/taxonomies/UID/export').reply(200, { + taxonomy: { + ...taxonomyImportMock + } + }) + makeTaxonomy({ + taxonomy: { + ...systemUidMock + }, + stackHeaders: stackHeadersMock + }) + .export() + .then((taxonomy) => { + expect(taxonomy['taxonomy']['uid']).to.be.equal('UID') + expect(taxonomy['taxonomy']['name']).to.be.equal('name') + done() + }) + .catch(done) + }) + + it('Taxonomy import test', done => { + var mock = new MockAdapter(Axios) + mock.onPost('/taxonomies/import').reply(200, { + taxonomy: { + ...taxonomyMock + } + }) + const taxonomyUpload = { taxonomy: path.join(__dirname, '../api/mock/taxonomy.json') } + const form = createFormData(taxonomyUpload)() + var boundary = form.getBoundary() + + expect(boundary).to.be.equal(form.getBoundary()) + expect(boundary.length).to.be.equal(50) + makeTaxonomy() + .import(taxonomyUpload) + .then((taxonomy) => { + checkTaxonomy(taxonomy) + done() + }) + .catch(done) + }) + + it('term create test', done => { var mock = new MockAdapter(Axios) mock.onPost(`/taxonomies/taxonomy_uid/terms`).reply(200, {