mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-10 02:03:07 +08:00
50 lines
1.8 KiB
React
50 lines
1.8 KiB
React
|
import React from 'react';
|
||
|
import ReactDOM from 'react-dom';
|
||
|
|
||
|
import {Message, NylasTestUtils} from 'nylas-exports'
|
||
|
import OpenTrackingMessageStatus from '../lib/open-tracking-message-status'
|
||
|
import {PLUGIN_ID} from '../lib/open-tracking-constants'
|
||
|
|
||
|
const {renderIntoDocument} = NylasTestUtils;
|
||
|
|
||
|
function makeIcon(message, props = {}) {
|
||
|
return renderIntoDocument(<div className="temp"><OpenTrackingMessageStatus {...props} message={message} /></div>);
|
||
|
}
|
||
|
|
||
|
function addOpenMetadata(obj, openCount) {
|
||
|
obj.applyPluginMetadata(PLUGIN_ID, {open_count: openCount});
|
||
|
}
|
||
|
|
||
|
describe('Open tracking message status', function openTrackingMessageStatus() {
|
||
|
beforeEach(() => {
|
||
|
this.message = new Message();
|
||
|
});
|
||
|
|
||
|
|
||
|
it("shows nothing if the message has no metadata", () => {
|
||
|
const icon = ReactDOM.findDOMNode(makeIcon(this.message));
|
||
|
expect(icon.querySelector(".open-tracking-message-status")).toBeNull();
|
||
|
});
|
||
|
|
||
|
|
||
|
it("shows nothing if metadata is malformed", () => {
|
||
|
this.message.applyPluginMetadata(PLUGIN_ID, {gar: "bage"});
|
||
|
const icon = ReactDOM.findDOMNode(makeIcon(this.message));
|
||
|
expect(icon.querySelector(".open-tracking-message-status")).toBeNull();
|
||
|
});
|
||
|
|
||
|
it("shows an unopened icon if the message has metadata and is unopened", () => {
|
||
|
addOpenMetadata(this.message, 0);
|
||
|
const icon = ReactDOM.findDOMNode(makeIcon(this.message));
|
||
|
expect(icon.querySelector("img.unopened")).not.toBeNull();
|
||
|
expect(icon.querySelector("img.opened")).toBeNull();
|
||
|
});
|
||
|
|
||
|
it("shows an opened icon if the message has metadata and is opened", () => {
|
||
|
addOpenMetadata(this.message, 1);
|
||
|
const icon = ReactDOM.findDOMNode(makeIcon(this.message));
|
||
|
expect(icon.querySelector("img.unopened")).toBeNull();
|
||
|
expect(icon.querySelector("img.opened")).not.toBeNull();
|
||
|
});
|
||
|
});
|