image

prev Kozaneba開発日記2021-08-21

OSを再起動したので開発環境を立ち上げ直すメモ

  • せっかくの機会なのでローカルのディレクトリ名をmovideaからkozanebaに変更

  • $ code kozaneba

  • devserver

    • $ npm start
  • Cyperss

    • $ npx cypress open
  • Firebase Local Emulator

    • $ firebase emulators:start
      • 追記
      • $ firebase emulators:start --import firebase_emulator_data
  • それぞれターミナルの名前を変えておく

    • image
  • とりあえずテストを走らせる

Check which process is occupying the port sudo lsof -i tcp:<port> 
Kill the process kill -9 <process id>
    - Firestoreエミュレータだけ生きてた
        - kill に -9 はなくて良い

ts

/// <reference types="cypress" />
 
import { ready_nested_group } from "../../support";
 
describe("ready nested groups", () => {
  beforeEach(() => {
    cy.visit("/#blank");
    cy.viewport(500, 500);
    ready_nested_group();
  });
  it("do nothing", () => {});
});

image ts

  it("do nothing", () => {
    cy.testid("G1").then((x: any) => console.log(x[0].style.cssText));
    cy.testid("G1").trigger("mousedown", 0, 0, { force: true });
    cy.testid("G1").then((x: any) => console.log(x[0].style.cssText));
    cy.testid("G1").trigger("mouseup", 0, 0, { force: true });
    cy.testid("G1").then((x: any) => console.log(x[0].style.cssText));
  });

image

ts

  it("should not move when click", () => {
    cy.testid("G1").then((x: any) => {
      const {top, left} = x[0].style;
      cy.testid("G1").trigger("mousedown", 0, 0, { force: true });
      cy.testid("G1").trigger("mouseup", 0, 0, { force: true }).then((x: any) => {
        expect(x[0].style.top).eql(top);
        expect(x[0].style.left).eql(left);
      });
    });
  });

コンテキストメニューが出ている時に座標が狂う問題、

  • 選択範囲に関して発生するのは気づいて直したけどグループについても発生するケースがあるのか…
  • ドラッグ中にいじったtop/leftの値をリセットするコードがクリックの時にも発生することが原因
  • クリックもドラッグもmouseup/downの組み合わせで自前でやる形になったことで発生するようになったのだな
  • これ内部状態は変化してないので無視して他の操作をすると直るんだけど、まあ普通のユーザば表示が壊れたらそれを直そうとしていじるよね…

グループのグループにタイトルをつけようとした時のデフォルト値に孫こざねのテキストが出ない

  • 「中のもののタイトルを繋げたものがデフォルト値」ってやってるから、タイトルのついてないグループは単なる空行になっちゃってるね

リリースノートに後で書く

  • グループのタイトル編集時にタイトルのついていないグループの中身もデフォルト値に含める
  • グループの作成と選択範囲の削除が更新とみなされておらずクラウド保存されないバグの修正
  • クリックしてコンテキストメニューを出した時に表示が一時的にズレるバグの修正
  • ローディング表示を改善

欲しい機能

  • 場の一覧を更新順にする
  • 場の別名保存
    • この時にリードオンリーにできるといい?

リードオンリーを実現するためにはFirestoreのruleをちゃんと書かなきゃだな

next Kozaneba開発日記2021-08-26