Add tests for open graph tags
authorChocobozzz <florian.bigard@gmail.com>
Tue, 11 Jul 2017 14:16:51 +0000 (16:16 +0200)
committerChocobozzz <florian.bigard@gmail.com>
Tue, 11 Jul 2017 14:16:51 +0000 (16:16 +0200)
server/tests/client.js [new file with mode: 0644]
server/tests/index.js

diff --git a/server/tests/client.js b/server/tests/client.js
new file mode 100644 (file)
index 0000000..0cdf0a2
--- /dev/null
@@ -0,0 +1,96 @@
+/* eslint-disable no-unused-expressions */
+
+'use strict'
+
+const chai = require('chai')
+const expect = chai.expect
+const request = require('supertest')
+const series = require('async/series')
+
+const loginUtils = require('./utils/login')
+const serversUtils = require('./utils/servers')
+const videosUtils = require('./utils/videos')
+
+describe('Test a client controllers', function () {
+  let server = null
+
+  before(function (done) {
+    this.timeout(120000)
+
+    series([
+      function (next) {
+        serversUtils.flushTests(next)
+      },
+      function (next) {
+        serversUtils.runServer(1, function (server1) {
+          server = server1
+          next()
+        })
+      },
+      function (next) {
+        loginUtils.loginAndGetAccessToken(server, function (err, token) {
+          if (err) throw err
+          server.accessToken = token
+          next()
+        })
+      },
+      function (next) {
+        const videoAttributes = {
+          name: 'my super name for pod 1',
+          description: 'my super description for pod 1'
+        }
+        videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next)
+      },
+      function (next) {
+        videosUtils.getVideosList(server.url, function (err, res) {
+          if (err) throw err
+
+          const videos = res.body.data
+
+          expect(videos.length).to.equal(1)
+
+          server.video = videos[0]
+
+          next()
+        })
+      }
+    ], done)
+  })
+
+  it('It should have valid opengraph tags on the watch page with video id', function (done) {
+    request(server.url)
+      .get('/videos/watch/' + server.video.id)
+      .expect(200, function (err, res) {
+        if (err) throw err
+
+        expect(res.text).to.contain('<meta property="og:title" content="my super name for pod 1" />')
+        expect(res.text).to.contain('<meta property="og:description" content="my super description for pod 1" />')
+
+        done()
+      })
+  })
+
+  it('It should have valid opengraph tags on the watch page with video uuid', function (done) {
+    request(server.url)
+      .get('/videos/watch/' + server.video.uuid)
+      .expect(200, function (err, res) {
+        if (err) throw err
+
+        expect(res.text).to.contain('<meta property="og:title" content="my super name for pod 1" />')
+        expect(res.text).to.contain('<meta property="og:description" content="my super description for pod 1" />')
+
+        done()
+      })
+  })
+
+  after(function (done) {
+    process.kill(-server.app.pid)
+
+    // Keep the logs if the test failed
+    if (this.ok) {
+      serversUtils.flushTests(done)
+    } else {
+      done()
+    }
+  })
+})
index cb177b87c5c8e0a49006e01ee85ee6d253084189..0bc0523a52adcd70c2d653dba237048ab93ac33e 100644 (file)
@@ -1,4 +1,5 @@
 'use strict'
 
 // Order of the tests we want to execute
+require('./client')
 require('./api/')