Сквозная тестовая конфигурация Nuxt Ava - PullRequest
0 голосов
/ 10 октября 2018

Приведенный пример официального сквозного теста Nuxt пример с использованием Ava:

import test from 'ava'
import { Nuxt, Builder } from 'nuxt'
import { resolve } from 'path'

// We keep a reference to Nuxt so we can close
// the server at the end of the test
let nuxt = null

// Init Nuxt.js and start listening on localhost:4000
test.before('Init Nuxt.js', async t => {
  const rootDir = resolve(__dirname, '..')
  let config = {}
  try { config = require(resolve(rootDir, 'nuxt.config.js')) } catch (e) {}
  config.rootDir = rootDir // project folder
  config.dev = false // production build
  config.mode = 'universal' // Isomorphic application
  nuxt = new Nuxt(config)
  await new Builder(nuxt).build()
  nuxt.listen(4000, 'localhost')
})

// Example of testing only generated html
test('Route / exits and render HTML', async t => {
  let context = {}
  const { html } = await nuxt.renderRoute('/', context)
  t.true(html.includes('<h1 class="red">Hello world!</h1>'))
})

// Close the Nuxt server
test.after('Closing server', t => {
  nuxt.close()
})

Как использовать Nuxt или Builder для настройки / доступа к приложениям Vuex store ?Пример хранилища Vuex будет выглядеть следующим образом:

import Vuex from "vuex";

const createStore = () => {
  return new Vuex.Store({
    state: () => ({
      todo: null
    }),
    mutations: {
      receiveTodo(state, todo) {
        state.todo = todo;
      }
    },
    actions: {
      async nuxtServerInit({ commit }, { app }) {
        console.log(app);
        const todo = await app.$axios.$get(
          "https://jsonplaceholder.typicode.com/todos/1"
        );
        commit("receiveTodo", todo);
      }
    }
  });
};

export default createStore;

В настоящее время попытка запустить предоставленный тест Ava приводит к ошибке при попытке доступа к @nuxtjs/axios method $ get:

TypeError {
  message: 'Cannot read property \'$get\' of undefined',
}

IЯ мог бы смоделировать $get и даже $axios, доступные на app в методе хранения Vuex nuxtServerInit, мне просто нужно понять, как получить доступ к app в тестовой конфигурации.

СпасибоВы за любую помощь, вы можете предоставить.

...