// Sortable columns per schema
const SEARCHABLE_COLUMNS = {
- VIDEOS: [ 'name', 'magnetUri', 'podUrl', 'author' ]
+ VIDEOS: [ 'name', 'magnetUri', 'podUrl', 'author', 'tags' ]
}
// Sortable columns per schema
function search (value, field, start, count, sort, callback) {
const query = {}
// Make an exact search with the magnet
- if (field === 'magnetUri') {
+ if (field === 'magnetUri' || field === 'tags') {
query[field] = value
} else {
query[field] = new RegExp(value)
})
})
+ it('Should search the video by tag', function (done) {
+ utils.searchVideo(server.url, 'tag1', 'tags', function (err, res) {
+ if (err) throw err
+
+ expect(res.body.total).to.equal(1)
+ expect(res.body.data).to.be.an('array')
+ expect(res.body.data.length).to.equal(1)
+
+ const video = res.body.data[0]
+ expect(video.name).to.equal('my super name')
+ expect(video.description).to.equal('my super description')
+ expect(video.podUrl).to.equal('localhost:9001')
+ expect(video.author).to.equal('root')
+ expect(video.isLocal).to.be.true
+ expect(video.tags).to.deep.equal([ 'tag1', 'tag2', 'tag3' ])
+ expect(utils.dateIsValid(video.createdDate)).to.be.true
+
+ utils.testImage(server.url, 'video_short.webm', video.thumbnailPath, function (err, test) {
+ if (err) throw err
+ expect(test).to.equal(true)
+
+ done()
+ })
+ })
+ })
+
it('Should not find a search by name by default', function (done) {
utils.searchVideo(server.url, 'hello', function (err, res) {
if (err) throw err
})
})
+ it('Should not find a search by tag', function (done) {
+ utils.searchVideo(server.url, 'tag', 'tags', function (err, res) {
+ if (err) throw err
+
+ expect(res.body.total).to.equal(0)
+ expect(res.body.data).to.be.an('array')
+ expect(res.body.data.length).to.equal(0)
+
+ done()
+ })
+ })
+
it('Should remove the video', function (done) {
utils.removeVideo(server.url, server.accessToken, videoId, function (err) {
if (err) throw err