小编gCa*_*nal的帖子

GraphQL:过滤数组中的数据

我确定这是一件很简单的事情,但我在GraphQL的doc或Graphcool中找不到任何东西.

假设我有一个具有此架构的实体(新的GraphQL用户,抱歉,如果我在架构表示中出错):

Book {
  name: String!
  author: String!
  categories: [String!]
}
Run Code Online (Sandbox Code Playgroud)

如何查询属于该"mystery"类别的所有书籍?我知道我可以过滤allBooks(filter: {}),但categories_in: ["mystery"]categories_contains: "mystery"没有做到这一点.

graphql graphcool

9
推荐指数
1
解决办法
1万
查看次数

量角器:PhantomJS中的Polyfill Function.prototype.bind.无法使其工作,甚至可能吗?

我花了整个下午的时间,并没有取得任何进展,我真的开始怀疑它是否有可能.

我正在使用Angular with Headroom来处理向下滚动菜单时消失的菜单.我的测试是使用Protractor完成的,使用PhantomJS,这就是乐趣开始的地方.

PhantomJS不支持.bind(),Headroom在整个地方使用它,这意味着我需要对它进行填充.应该没问题,但我不能让它发挥作用.

我认为我的问题是,无论我在哪里运行polyfill功能,PhantomJS和测试页面都已经加载,所以已经太晚了,Headroom将因为无法加载而.bind()无法加载.

有没有办法在页面加载之前运行这些方法?我知道我可以通过头部的脚本标签将它们添加到我的应用程序中,但我不想在整个应用程序中添加一些只能由测试框架使用的东西.

polyfills phantomjs angularjs angularjs-e2e protractor

7
推荐指数
1
解决办法
377
查看次数

Material-UI + Enzyme:浅层渲染组件?

我正在努力将我的应用程序更新到最新版本的React,Enzyme和Material-UI.

我知道,对于版本15,如果没有给出Material-UI,则会删除默认主题组件.现在首选的方法是MuiThemeProvider使用我们想要使用的样式的组件包装整个应用程序.这没有任何障碍,但我的测试现在打破他们不应该.

使用Material-UI组件和我调用的任何组件ShallowWrapper.html()现在将使我的测试失败并显示以下消息:TypeError: Cannot read property 'prepareStyles' of undefined.

请注意,如果我不使用ShallowWrapper.html(),我不会收到任何错误.所以只有当我需要看到HTML输出失败时才会这样.这是有道理的,Material-UI应该只关注实际渲染时的样式.

我创建了一个非常简单的测试用例来展示我是如何做到的:

import * as React from 'react'
import * as chai from 'chai'
import chaiEnzyme = require('chai-enzyme')
import { shallow } from 'enzyme'
import Avatar from 'material-ui/Avatar'
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'

chai.use(chaiEnzyme());
let expect = chai.expect;

describe('Unit Test', () => {
    it(`Should work`, () => {
        let shallowComponent = shallow(
            <MuiThemeProvider>
                <Avatar src='foo.jpg' />
            </MuiThemeProvider>
        );
        expect(shallowComponent.html()).to.exist
    })
});
Run Code Online (Sandbox Code Playgroud)

我想只是包装我的组件应该工作.显然,我在某个地方错过了一步.有人能指出我正确的方向吗?

reactjs material-ui enzyme

4
推荐指数
1
解决办法
2861
查看次数

在 Linux 主机上使用 winrm 通信器

我正在设置一台 Windows 2008 Server 计算机,整个上午我都在 Windows 主机上,所以 winrm 直到现在才造成任何问题。我切换到 Linux 思想,每当我将通信器设置为 winrm 时,vagrant 就无法再与我的来宾计算机通信,并且我不想(阅读:由于多种原因不能)安装 Cygwin它。

这是我的 Vagrantfile:

# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "box/win-server-2008"
  config.vm.communicator = "winrm"
end
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

/home/guyllaume/.vagrant.d/gems/gems/vagrant-windows-1.6.0/lib/vagrant-windows/windows_machine.rb:62:in `winrmshell': undefined method `winrmshell' for #<VagrantPlugins::CommunicatorWinRM::Communicator:0x00000001f65ad0> (NoMethodError)
    from /home/guyllaume/.vagrant.d/gems/gems/vagrant-windows-1.6.0/lib/vagrant-windows/guest/cap/configure_networks.rb:19:in `configure_networks'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/capability_host.rb:111:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/capability_host.rb:111:in `capability'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/guest.rb:43:in `capability'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/plugins/providers/virtualbox/action/network.rb:132:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/plugins/providers/virtualbox/action/clear_network_interfaces.rb:26:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/plugins/providers/virtualbox/action/prepare_nfs_settings.rb:15:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
    from …
Run Code Online (Sandbox Code Playgroud)

linux vagrant winrm vagrantfile

3
推荐指数
1
解决办法
3291
查看次数