Приведенный пример официального сквозного теста 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
в тестовой конфигурации.
СпасибоВы за любую помощь, вы можете предоставить.