Newer
Older
/*
This is part of datacrate, a node.js library for working with
DataCrates. Copyright (C) 2018 University of Technology Sydney
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
const chai = require('chai');
const chaiFiles = require('chai-files');
chai.use(chaiFiles);
const assert = chai.assert;
const expect = chai.expect;
const file = chaiFiles.file;
const fs = require('fs-extra');
const catalog = require('../lib/catalog.js');
const ORG = {
'@id': 'https://www.uts.edu.au',
'name': 'University of Technology Sydney'
};
const OWNER = 'Michael.Lynch@uts.edu.au';
const APPROVER = 'data.librarian@uts.edu.au';
const DATASET_ID = 'DATASET_ID';
function graph_get(graph, id) {
const match = graph.filter((item) => item['@id'] === id);
if( match.length ) {
return match[0];
} else {
return null;
}
}
describe("ReDBox data publication to DataCrate catalog.json", () => {
it("returns a catalog with a dataset item", async () => {
const dp = await fs.readJson('./test_data/datapub.json');
const cj = await catalog.datapub2catalog({
'id': DATASET_ID,
'datapub': dp,
'organisation': ORG,
'owner': OWNER,
'approver': APPROVER
});
assert(cj, "Got an object");
assert(cj['@graph'], "Catalog has a @graph");
const dataset = graph_get(cj['@graph'], DATASET_ID);
assert(dataset, "Graph has an item with id " + DATASET_ID);
expect(dataset['name']).to.equal(dp['title']);
expect(dataset['description']).to.equal(dp['description']);
it("Can set dateCreated and datePublished", async() => {
assert(true);
})