graphql 订阅的集成测试

daz*_*raf 5 subscriptions graphql

如何在不使用 apollo 的情况下测试我的 graphql 模式的发布/订阅?

是否可以只使用 subscriptions-transport-ws 来完成?我的 SubscriptionServer 是使用默认设置设置的,我可以通过使用 graphql 调用突变查询来看到发布。我已经使用我的快速服务器设置了一个 websocket 连接

const WebSocket = require('ws');
const myServer = require('../../bin/www');
const wsServer = new WebSocket.Server({
  server: myServer
});

const client = new SubscriptionClient(`ws://localhost:3000/subscriptions`, {}, WebSocket);

client.subscribe(
  {
    query: `subscription roomSubscription(placeId: "someid") {
        user {
            id,
            name
        }
    }`,
  },
  (error, result) => {
      console.log({error, result});
  }
);


const query = `
    mutation { 
        roomAddOrUpdate(placeId: "some id") {
            user {
                name
            }
        }
    }`;
   const result = await graphql(schema, query, {}, req); 
Run Code Online (Sandbox Code Playgroud)

在 client.subscribe 函数中似乎没有什么可以解决的,不确定我是否以正确的方式进行。你可以在这里看到我的设置https://github.com/farzd/firstsight/blob/master/bin/www