Jelajahi Sumber

mock data for commits example e2e test

Evan You 11 tahun lalu
induk
melakukan
9823a192cf
2 mengubah file dengan 41 tambahan dan 1 penghapusan
  1. 24 0
      examples/commits/app.js
  2. 17 1
      test/e2e/commits.js

+ 24 - 0
examples/commits/app.js

@@ -1,4 +1,23 @@
 var apiURL = 'https://api.github.com/repos/yyx990803/vue/commits?per_page=3&sha='
+var isPhantom = true//navigator.userAgent.indexOf('PhantomJS') > -1
+
+/**
+ * Test mocks
+ */
+
+var mocks = {
+  master: [{sha:'111111111111', commit: {message:'one', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}}],
+  dev: [{sha:'222222222222', commit: {message:'two', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}}],
+  next: [{sha:'333333333333', commit: {message:'three', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}}]
+}
+
+function mockData () {
+  this.commits = mocks[this.currentBranch]
+}
+
+/**
+ * Actual demo
+ */
 
 var demo = new Vue({
 
@@ -29,6 +48,11 @@ var demo = new Vue({
 
   methods: {
     fetchData: function () {
+      // CasperJS fails at cross-domain XHR even with
+      // --web-security=no, have to mock data here.
+      if (isPhantom) {
+        return mockData.call(this)
+      }
       var xhr = new XMLHttpRequest()
       var self = this
       xhr.open('GET', apiURL + self.currentBranch)

+ 17 - 1
test/e2e/commits.js

@@ -1,4 +1,8 @@
-casper.test.begin('commits', 14, function (test) {
+casper.on('remote.message', function (e) {
+  console.log(e)
+})
+
+casper.test.begin('commits', 26, function (test) {
   
   casper
   .start('../../examples/commits/index.html')
@@ -13,16 +17,28 @@ casper.test.begin('commits', 14, function (test) {
     test.assertField('branch', 'master')
     test.assertSelectorHasText('p', 'yyx990803/vue@master')
     test.assertElementCount('li', 3)
+    test.assertSelectorHasText('li:first-child a.commit', '1111111')
+    test.assertSelectorHasText('li:first-child span.message', 'one')
+    test.assertSelectorHasText('li:first-child span.author', 'Evan')
+    test.assertSelectorHasText('li:first-child span.date', '2014-10-15 13:52:58')
   })
   .thenClick('input[value="dev"]', function () {
     test.assertField('branch', 'dev')
     test.assertSelectorHasText('p', 'yyx990803/vue@dev')
     test.assertElementCount('li', 3)
+    test.assertSelectorHasText('li:first-child a.commit', '2222222')
+    test.assertSelectorHasText('li:first-child span.message', 'two')
+    test.assertSelectorHasText('li:first-child span.author', 'Evan')
+    test.assertSelectorHasText('li:first-child span.date', '2014-10-15 13:52:58')
   })
   .thenClick('input[value="next"]', function () {
     test.assertField('branch', 'next')
     test.assertSelectorHasText('p', 'yyx990803/vue@next')
     test.assertElementCount('li', 3)
+    test.assertSelectorHasText('li:first-child a.commit', '3333333')
+    test.assertSelectorHasText('li:first-child span.message', 'three')
+    test.assertSelectorHasText('li:first-child span.author', 'Evan')
+    test.assertSelectorHasText('li:first-child span.date', '2014-10-15 13:52:58')
   })
   // run
   .run(function () {