Skip to content

Commit

Permalink
Merge pull request #17 from renehernandez/update-timestamp-set-on-ins…
Browse files Browse the repository at this point in the history
…tall

Set initial timestamp on plugin install
  • Loading branch information
renehernandez authored Apr 9, 2021
2 parents 739831c + 71d995f commit fd24794
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 10 deletions.
8 changes: 4 additions & 4 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,15 @@ export default class ObsidianReadwisePlugin extends Plugin {
if (!(await this.initializeApi())) {
return;
}
await this.syncReadwise(this.settings.lastUpdateTimestamp);
await this.syncReadwise(this.settings.lastUpdate);
}});

if (!(await this.initializeApi())) {
return;
}

if (this.settings.syncOnBoot) {
await this.syncReadwise(this.settings.lastUpdateTimestamp);
await this.syncReadwise(this.settings.lastUpdate);
}
}

Expand All @@ -69,7 +69,7 @@ export default class ObsidianReadwisePlugin extends Plugin {
}

async loadSettings() {
this.settings = Object.assign({}, ObsidianReadwiseSettings.defaultSettings(), await this.loadData());
this.settings = ObsidianReadwiseSettings.withData(await this.loadData());
}

async saveSettings() {
Expand All @@ -93,7 +93,7 @@ export default class ObsidianReadwisePlugin extends Plugin {
await this.updateNotes(documents);
}

this.settings.lastUpdateTimestamp = Date.now();
this.settings.lastUpdate = Date.now();

await this.saveSettings();

Expand Down
8 changes: 6 additions & 2 deletions src/settings.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
export class ObsidianReadwiseSettings {
syncOnBoot: boolean = false;
lastUpdateTimestamp: number;
lastUpdate: number;
disableNotifications: boolean = false;
headerTemplate: string;

static withData(data: any): ObsidianReadwiseSettings {
return Object.assign({}, ObsidianReadwiseSettings.defaultSettings(), data);
}

static defaultSettings(): ObsidianReadwiseSettings {
return {
syncOnBoot: false,
disableNotifications: false,
headerTemplate: "",
lastUpdateTimestamp: 0
lastUpdate: Date.now()
}
}
}
2 changes: 1 addition & 1 deletion src/status.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export class StatusBar {

switch (state) {
case PluginState.idle:
this.displayFromNow(this.plugin.settings.lastUpdateTimestamp);
this.displayFromNow(this.plugin.settings.lastUpdate);
break;
case PluginState.checking:
this.statusBarEl.setText("readwise: checking if there are new highlights to sync");
Expand Down
35 changes: 32 additions & 3 deletions tests/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ import { ObsidianReadwiseSettings } from '../src/settings';
import { before } from "mocha";

describe("Settings", () => {
context("Default Settings", () => {
context("defaultSettings", () => {
var settings: ObsidianReadwiseSettings;

before(() => {
settings = ObsidianReadwiseSettings.defaultSettings();
});

it('sets the lastUpdate to zero', () => {
assert.equal(settings.lastUpdateTimestamp, 0);
it('sets the lastUpdate to now timestamp', () => {
assert.isNumber(settings.lastUpdate);
assert.isAbove(settings.lastUpdate, 0);
});

it('syncOnBoot is disabled', () => {
Expand All @@ -27,4 +28,32 @@ describe("Settings", () => {
assert.isEmpty(settings.headerTemplate);
});
});

context("withData", () => {
var settings: ObsidianReadwiseSettings;
before(() => {
settings = ObsidianReadwiseSettings.withData({
lastUpdate: 10,
syncOnBoot: true,
headerTemplate: 'Hello World',
disableNotifications: true
});
});

it('overrides the lastUpdate field', () => {
assert.equal(settings.lastUpdate, 10);
});

it('overrides the syncOnBoot field', () => {
assert.isTrue(settings.syncOnBoot);
});

it('overrides the headerTemplate field', () => {
assert.equal(settings.headerTemplate, "Hello World");
});

it('overrides the disableNotifications field', () => {
assert.isTrue(settings.disableNotifications);
});
});
})

0 comments on commit fd24794

Please sign in to comment.